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