Fix memory leak in BIO_free if there is no destroy function.

Based on an original patch by Neitrino Photonov <neitrinoph@gmail.com>

PR#3439
This commit is contained in:
Matt Caswell 2014-07-09 23:29:17 +01:00
parent 1b0fe79f3e
commit 66816c53be

View File

@ -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);
}