diff options
Diffstat (limited to 'ext/standard/crypt_sha256.c')
| -rw-r--r-- | ext/standard/crypt_sha256.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/ext/standard/crypt_sha256.c b/ext/standard/crypt_sha256.c index f9daed909..0923aae30 100644 --- a/ext/standard/crypt_sha256.c +++ b/ext/standard/crypt_sha256.c @@ -395,9 +395,10 @@ char * php_sha256_crypt_r(const char *key, const char *salt, char *buffer, int b } if ((salt - (char *) 0) % __alignof__(uint32_t) != 0) { - char *tmp = (char *) alloca(salt_len + __alignof__(uint32_t)); + char *tmp = (char *) alloca(salt_len + 1 + __alignof__(uint32_t)); salt = copied_salt = memcpy(tmp + __alignof__(uint32_t) - (tmp - (char *) 0) % __alignof__ (uint32_t), salt, salt_len); + copied_salt[salt_len] = 0; } /* Prepare for the real work. */ |
