hnangelo Sat Jun 28 09:24:18 2008 UTC Modified files: /php-src/ext/openssl openssl.c Log: Fix a memory leak on openssl_decrypt() http://cvs.php.net/viewvc.cgi/php-src/ext/openssl/openssl.c?r1=1.160&r2=1.161&diff_format=u Index: php-src/ext/openssl/openssl.c diff -u php-src/ext/openssl/openssl.c:1.160 php-src/ext/openssl/openssl.c:1.161 --- php-src/ext/openssl/openssl.c:1.160 Sun Jun 1 18:25:29 2008 +++ php-src/ext/openssl/openssl.c Sat Jun 28 09:24:18 2008 @@ -20,7 +20,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: openssl.c,v 1.160 2008/06/01 18:25:29 bjori Exp $ */ +/* $Id: openssl.c,v 1.161 2008/06/28 09:24:18 hnangelo Exp $ */ #ifdef HAVE_CONFIG_H #include "config.h" @@ -4691,10 +4691,9 @@ return; } - 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; + if (!method_len) { + php_error_docref(NULL TSRMLS_CC, E_WARNING, "Unknown cipher algorithm"); + RETURN_FALSE; } cipher_type = EVP_get_cipherbyname(method); @@ -4703,6 +4702,12 @@ 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); if (keylen > password_len) { key = emalloc(keylen);
-- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php