mirror of
https://github.com/php/php-src.git
synced 2025-08-18 06:58:55 +02:00
Fix a memory leak on openssl_decrypt()
This commit is contained in:
parent
9c812109d4
commit
d44509418e
1 changed files with 9 additions and 4 deletions
|
@ -4691,10 +4691,9 @@ PHP_FUNCTION(openssl_decrypt)
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!raw_input) {
|
if (!method_len) {
|
||||||
base64_str = (char*)php_base64_decode((unsigned char*)data, data_len, &base64_str_len);
|
php_error_docref(NULL TSRMLS_CC, E_WARNING, "Unknown cipher algorithm");
|
||||||
data_len = base64_str_len;
|
RETURN_FALSE;
|
||||||
data = base64_str;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
cipher_type = EVP_get_cipherbyname(method);
|
cipher_type = EVP_get_cipherbyname(method);
|
||||||
|
@ -4703,6 +4702,12 @@ PHP_FUNCTION(openssl_decrypt)
|
||||||
RETURN_FALSE;
|
RETURN_FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (!raw_input) {
|
||||||
|
base64_str = (char*)php_base64_decode((unsigned char*)data, data_len, &base64_str_len);
|
||||||
|
data_len = base64_str_len;
|
||||||
|
data = base64_str;
|
||||||
|
}
|
||||||
|
|
||||||
keylen = EVP_CIPHER_key_length(cipher_type);
|
keylen = EVP_CIPHER_key_length(cipher_type);
|
||||||
if (keylen > password_len) {
|
if (keylen > password_len) {
|
||||||
key = emalloc(keylen);
|
key = emalloc(keylen);
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue