hnangelo                Sat Jun 28 09:17:40 2008 UTC

  Modified files:              (Branch: PHP_5_3)
    /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.98.2.5.2.41.2.11&r2=1.98.2.5.2.41.2.12&diff_format=u
Index: php-src/ext/openssl/openssl.c
diff -u php-src/ext/openssl/openssl.c:1.98.2.5.2.41.2.11 
php-src/ext/openssl/openssl.c:1.98.2.5.2.41.2.12
--- php-src/ext/openssl/openssl.c:1.98.2.5.2.41.2.11    Sun Jun  1 18:24:38 2008
+++ php-src/ext/openssl/openssl.c       Sat Jun 28 09:17:39 2008
@@ -20,7 +20,7 @@
    +----------------------------------------------------------------------+
  */
 
-/* $Id: openssl.c,v 1.98.2.5.2.41.2.11 2008/06/01 18:24:38 bjori Exp $ */
+/* $Id: openssl.c,v 1.98.2.5.2.41.2.12 2008/06/28 09:17:39 hnangelo Exp $ */
 
 #ifdef HAVE_CONFIG_H
 #include "config.h"
@@ -4653,10 +4653,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);
@@ -4665,6 +4664,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

Reply via email to