From: Matt Caswell Date: Mon, 26 Sep 2016 11:04:23 +0000 (+0100) Subject: Fix some mem leaks in sslapitest X-Git-Tag: OpenSSL_1_1_1-pre1~3456 X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=fa454945cf2855fed452ff9bdb1876096bc07beb;p=oweals%2Fopenssl.git Fix some mem leaks in sslapitest A mem leak could occur on an error path. Also the mempacket BIO_METHOD needs to be cleaned up, because of the newly added DTLS test. Also fixed a double semi-colon in ssltestlib.c Reviewed-by: Rich Salz --- diff --git a/test/sslapitest.c b/test/sslapitest.c index acb2087cc4..b08eb8c78f 100644 --- a/test/sslapitest.c +++ b/test/sslapitest.c @@ -46,14 +46,18 @@ static int execute_test_large_message(const SSL_METHOD *smeth, goto end; } chaincert = PEM_read_bio_X509(certbio, NULL, NULL, NULL); + BIO_free(certbio); + certbio = NULL; + if (chaincert == NULL) { + printf("Unable to load certificate for chain\n"); + goto end; + } if (!create_ssl_ctx_pair(smeth, cmeth, &sctx, &cctx, cert, privkey)) { printf("Unable to create SSL_CTX pair\n"); goto end; } - BIO_free(certbio); - certbio = NULL; /* * We assume the supplied certificate is big enough so that if we add @@ -870,6 +874,8 @@ int main(int argc, char *argv[]) testresult = run_tests(argv[0]); + bio_s_mempacket_test_free(); + #ifndef OPENSSL_NO_CRYPTO_MDEBUG if (CRYPTO_mem_leaks(err) <= 0) testresult = 1; diff --git a/test/ssltestlib.c b/test/ssltestlib.c index 9fcd98de7d..655fc05cb2 100644 --- a/test/ssltestlib.c +++ b/test/ssltestlib.c @@ -587,7 +587,7 @@ int create_ssl_objects(SSL_CTX *serverctx, SSL_CTX *clientctx, SSL **sssl, if (SSL_is_dtls(clientssl)) { s_to_c_bio = BIO_new(bio_s_mempacket_test()); - c_to_s_bio = BIO_new(bio_s_mempacket_test());; + c_to_s_bio = BIO_new(bio_s_mempacket_test()); } else { s_to_c_bio = BIO_new(BIO_s_mem()); c_to_s_bio = BIO_new(BIO_s_mem());