felipe Tue, 27 Oct 2009 21:37:03 +0000 Revision: http://svn.php.net/viewvc?view=revision&revision=290001
Log: - Fixed memory leak in openssl_pkcs12_export_to_file() Changed paths: U php/php-src/branches/PHP_5_2/NEWS U php/php-src/branches/PHP_5_2/ext/openssl/openssl.c U php/php-src/branches/PHP_5_3/ext/openssl/openssl.c U php/php-src/trunk/ext/openssl/openssl.c Modified: php/php-src/branches/PHP_5_2/NEWS =================================================================== --- php/php-src/branches/PHP_5_2/NEWS 2009-10-27 21:04:35 UTC (rev 290000) +++ php/php-src/branches/PHP_5_2/NEWS 2009-10-27 21:37:03 UTC (rev 290001) @@ -16,6 +16,7 @@ when calling using Reflection. (Felipe) - Fixed crash when instantiating PDORow and PDOStatement through Reflection. (Felipe) +- Fixed memory leak in openssl_pkcs12_export_to_file(). (Felipe) - Fixed bug #49990 (SNMP3 warning message about security level printed twice). (Jani) Modified: php/php-src/branches/PHP_5_2/ext/openssl/openssl.c =================================================================== --- php/php-src/branches/PHP_5_2/ext/openssl/openssl.c 2009-10-27 21:04:35 UTC (rev 290000) +++ php/php-src/branches/PHP_5_2/ext/openssl/openssl.c 2009-10-27 21:37:03 UTC (rev 290001) @@ -1444,18 +1444,18 @@ int filename_len; char * pass; int pass_len; - zval *zcert = NULL, *zpkey = NULL, *args = NULL; + zval **zcert = NULL, *zpkey = NULL, *args = NULL; EVP_PKEY *priv_key = NULL; long certresource, keyresource; zval ** item; STACK_OF(X509) *ca = NULL; - if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "zszs|a", &zcert, &filename, &filename_len, &zpkey, &pass, &pass_len, &args) == FAILURE) + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "Zszs|a", &zcert, &filename, &filename_len, &zpkey, &pass, &pass_len, &args) == FAILURE) return; RETVAL_FALSE; - cert = php_openssl_x509_from_zval(&zcert, 0, &certresource TSRMLS_CC); + cert = php_openssl_x509_from_zval(zcert, 0, &certresource TSRMLS_CC); if (cert == NULL) { php_error_docref(NULL TSRMLS_CC, E_WARNING, "cannot get cert from parameter 1"); return; Modified: php/php-src/branches/PHP_5_3/ext/openssl/openssl.c =================================================================== --- php/php-src/branches/PHP_5_3/ext/openssl/openssl.c 2009-10-27 21:04:35 UTC (rev 290000) +++ php/php-src/branches/PHP_5_3/ext/openssl/openssl.c 2009-10-27 21:37:03 UTC (rev 290001) @@ -1738,18 +1738,18 @@ int filename_len; char * pass; int pass_len; - zval *zcert = NULL, *zpkey = NULL, *args = NULL; + zval **zcert = NULL, *zpkey = NULL, *args = NULL; EVP_PKEY *priv_key = NULL; long certresource, keyresource; zval ** item; STACK_OF(X509) *ca = NULL; - if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "zszs|a", &zcert, &filename, &filename_len, &zpkey, &pass, &pass_len, &args) == FAILURE) + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "Zszs|a", &zcert, &filename, &filename_len, &zpkey, &pass, &pass_len, &args) == FAILURE) return; RETVAL_FALSE; - cert = php_openssl_x509_from_zval(&zcert, 0, &certresource TSRMLS_CC); + cert = php_openssl_x509_from_zval(zcert, 0, &certresource TSRMLS_CC); if (cert == NULL) { php_error_docref(NULL TSRMLS_CC, E_WARNING, "cannot get cert from parameter 1"); return; Modified: php/php-src/trunk/ext/openssl/openssl.c =================================================================== --- php/php-src/trunk/ext/openssl/openssl.c 2009-10-27 21:04:35 UTC (rev 290000) +++ php/php-src/trunk/ext/openssl/openssl.c 2009-10-27 21:37:03 UTC (rev 290001) @@ -2796,6 +2796,9 @@ if (Z_TYPE_PP(val) == IS_UNICODE && !filename) { php_error_docref(NULL TSRMLS_CC, E_WARNING, "Binary string expected, Unicode string received"); + if (free_phrase) { + efree(passphrase); + } return NULL; } @@ -4737,14 +4740,12 @@ static void openssl_add_method_or_alias(const OBJ_NAME *name, void *arg) /* {{{ */ { - TSRMLS_FETCH(); add_next_index_ascii_string((zval*)arg, (char*)name->name, 1); } /* }}} */ static void openssl_add_method(const OBJ_NAME *name, void *arg) /* {{{ */ { - TSRMLS_FETCH(); if (name->alias == 0) { add_next_index_ascii_string((zval*)arg, (char*)name->name, 1); }
-- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php