From e2b093bfcb7b35f1611edeb2cce6cc9334cb68b1 Mon Sep 17 00:00:00 2001 From: Ilia Alshanetsky Date: Tue, 19 Jun 2007 22:09:49 +0000 Subject: [PATCH] Fixed a memory leak inside load_all_certs_file() --- ext/openssl/openssl.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/ext/openssl/openssl.c b/ext/openssl/openssl.c index 10cf4629175..c6ee21dd6be 100644 --- a/ext/openssl/openssl.c +++ b/ext/openssl/openssl.c @@ -1109,17 +1109,20 @@ static STACK_OF(X509) * load_all_certs_from_file(char *certfile) } if (php_openssl_safe_mode_chk(certfile TSRMLS_CC)) { + sk_X509_free(stack); goto end; } if(!(in=BIO_new_file(certfile, "r"))) { php_error_docref(NULL TSRMLS_CC, E_WARNING, "error opening the file, %s", certfile); + sk_X509_free(stack); goto end; } /* This loads from a file, a stack of x509/crl/pkey sets */ if(!(sk=PEM_X509_INFO_read_bio(in, NULL, NULL, NULL))) { php_error_docref(NULL TSRMLS_CC, E_WARNING, "error reading the file, %s", certfile); + sk_X509_free(stack); goto end; }