From: Matt Caswell Date: Wed, 9 Jul 2014 22:29:17 +0000 (+0100) Subject: Fix memory leak in BIO_free if there is no destroy function. X-Git-Tag: OpenSSL_1_0_0n~31 X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=182f1ad8a1637e8cc6ed9f2e45f9114b1b48b938;p=oweals%2Fopenssl.git Fix memory leak in BIO_free if there is no destroy function. Based on an original patch by Neitrino Photonov PR#3439 (cherry picked from commit 66816c53bea0ecddb9448da7ea9a51a334496127) --- diff --git a/crypto/bio/bio_lib.c b/crypto/bio/bio_lib.c index 9c9646afa8..4793a453e4 100644 --- a/crypto/bio/bio_lib.c +++ b/crypto/bio/bio_lib.c @@ -132,8 +132,8 @@ int BIO_free(BIO *a) CRYPTO_free_ex_data(CRYPTO_EX_INDEX_BIO, a, &a->ex_data); - if ((a->method == NULL) || (a->method->destroy == NULL)) return(1); - a->method->destroy(a); + if ((a->method != NULL) && (a->method->destroy != NULL)) + a->method->destroy(a); OPENSSL_free(a); return(1); }