summaryrefslogtreecommitdiff
path: root/ext/openssl/openssl.c
diff options
context:
space:
mode:
authorJakub Zelenka <bukka@php.net>2015-08-19 20:06:58 +0100
committerJakub Zelenka <bukka@php.net>2015-08-19 20:06:58 +0100
commit478ecc674ba801fa54d68f014cb6b7946a520eaa (patch)
tree0e9f53033d9cb12b659abff4d8bfbbeced269ba2 /ext/openssl/openssl.c
parent09970d803156d74eff9f5d51f8943b7cb0425c8f (diff)
downloadphp-git-478ecc674ba801fa54d68f014cb6b7946a520eaa.tar.gz
Move overflow checks in openssl_pbkdf2
Diffstat (limited to 'ext/openssl/openssl.c')
-rw-r--r--ext/openssl/openssl.c10
1 files changed, 5 insertions, 5 deletions
diff --git a/ext/openssl/openssl.c b/ext/openssl/openssl.c
index 2876bae76e..938117e1e3 100644
--- a/ext/openssl/openssl.c
+++ b/ext/openssl/openssl.c
@@ -4022,11 +4022,6 @@ PHP_FUNCTION(openssl_pbkdf2)
RETURN_FALSE;
}
- PHP_OPENSSL_CHECK_OVERFLOW(key_length, key);
- PHP_OPENSSL_CHECK_OVERFLOW(iterations, iterations);
- PHP_OPENSSL_CHECK_OVERFLOW(password_len, password);
- PHP_OPENSSL_CHECK_OVERFLOW(salt_len, salt);
-
if (method_len) {
digest = EVP_get_digestbyname(method);
} else {
@@ -4038,6 +4033,11 @@ PHP_FUNCTION(openssl_pbkdf2)
RETURN_FALSE;
}
+ PHP_OPENSSL_CHECK_OVERFLOW(key_length, key);
+ PHP_OPENSSL_CHECK_OVERFLOW(iterations, iterations);
+ PHP_OPENSSL_CHECK_OVERFLOW(password_len, password);
+ PHP_OPENSSL_CHECK_OVERFLOW(salt_len, salt);
+
out_buffer = zend_string_alloc(key_length, 0);
if (PKCS5_PBKDF2_HMAC(password, (int)password_len, (unsigned char *)salt, (int)salt_len, (int)iterations, digest, (int)key_length, (unsigned char*)ZSTR_VAL(out_buffer)) == 1) {