diff options
-rw-r--r-- | NEWS | 3 | ||||
-rw-r--r-- | ext/openssl/openssl.c | 10 |
2 files changed, 4 insertions, 9 deletions
@@ -6,6 +6,9 @@ PHP NEWS . Fixed bug #75301 (Exif extension has built in revision version). (Peter Kokot) +- Openssl: + . Fixed bug #75363 (openssl_x509_parse leaks memory). (Bob) + - Zlib: . Fixed bug #75299 (Wrong reflection on inflate_init and inflate_add). (Fabien Villepinte) diff --git a/ext/openssl/openssl.c b/ext/openssl/openssl.c index 2107b9ba59..9784ac49a7 100644 --- a/ext/openssl/openssl.c +++ b/ext/openssl/openssl.c @@ -2168,7 +2168,6 @@ PHP_FUNCTION(openssl_x509_parse) { zval * zcert; X509 * cert = NULL; - zend_resource *certresource = NULL; int i, sig_nid; zend_bool useshortnames = 1; char * tmpstr; @@ -2188,7 +2187,7 @@ PHP_FUNCTION(openssl_x509_parse) if (zend_parse_parameters(ZEND_NUM_ARGS(), "z|b", &zcert, &useshortnames) == FAILURE) { return; } - cert = php_openssl_x509_from_zval(zcert, 0, &certresource); + cert = php_openssl_x509_from_zval(zcert, 0, NULL); if (cert == NULL) { RETURN_FALSE; } @@ -2298,9 +2297,6 @@ PHP_FUNCTION(openssl_x509_parse) add_assoc_stringl(&subitem, extname, bio_buf->data, bio_buf->length); } else { zval_dtor(return_value); - if (certresource == NULL && cert) { - X509_free(cert); - } BIO_free(bio_out); RETURN_FALSE; } @@ -2314,10 +2310,6 @@ PHP_FUNCTION(openssl_x509_parse) BIO_free(bio_out); } add_assoc_zval(return_value, "extensions", &subitem); - - if (certresource == NULL && cert) { - X509_free(cert); - } } /* }}} */ |