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