From f0e1fe7cc30b22d9e24ac38f0d4631f9b8042e12 Mon Sep 17 00:00:00 2001 From: FdaSilvaYY Date: Fri, 18 Mar 2016 23:17:39 +0100 Subject: Add missing mem leak test activation and checks Reviewed-by: Matt Caswell Reviewed-by: Rich Salz --- test/bntest.c | 11 +++++++++++ test/ct_test.c | 10 ++++++++++ test/dhtest.c | 7 +++++++ 3 files changed, 28 insertions(+) (limited to 'test') diff --git a/test/bntest.c b/test/bntest.c index e58d94d117..1ba903254b 100644 --- a/test/bntest.c +++ b/test/bntest.c @@ -154,6 +154,9 @@ int main(int argc, char *argv[]) BIO *out; char *outfile = NULL; + CRYPTO_set_mem_debug(1); + CRYPTO_mem_ctrl(CRYPTO_MEM_CHECK_ON); + results = 0; RAND_seed(rnd_seed, sizeof rnd_seed); /* or BN_generate_prime may fail */ @@ -353,12 +356,20 @@ int main(int argc, char *argv[]) BN_CTX_free(ctx); BIO_free(out); + ERR_print_errors_fp(stderr); + +#ifndef OPENSSL_NO_CRYPTO_MDEBUG + if (CRYPTO_mem_leaks_fp(stderr) <= 0) + EXIT(1); +#endif EXIT(0); err: BIO_puts(out, "1\n"); /* make sure the Perl script fed by bc * notices the failure, see test_bn in * test/Makefile.ssl */ (void)BIO_flush(out); + BN_CTX_free(ctx); + BIO_free(out); ERR_print_errors_fp(stderr); EXIT(1); diff --git a/test/ct_test.c b/test/ct_test.c index ce417ab9bd..5446f9d0da 100644 --- a/test/ct_test.c +++ b/test/ct_test.c @@ -565,6 +565,11 @@ int main(int argc, char *argv[]) int result = 0; char *tmp_env = NULL; + tmp_env = getenv("OPENSSL_DEBUG_MEMORY"); + if (tmp_env != NULL && strcmp(tmp_env, "on") == 0) + CRYPTO_set_mem_debug(1); + CRYPTO_mem_ctrl(CRYPTO_MEM_CHECK_ON); + tmp_env = getenv("CT_DIR"); ct_dir = OPENSSL_strdup(tmp_env != NULL ? tmp_env : "ct"); tmp_env = getenv("CERTS_DIR"); @@ -584,6 +589,11 @@ int main(int argc, char *argv[]) OPENSSL_free(ct_dir); OPENSSL_free(certs_dir); +#ifndef OPENSSL_NO_CRYPTO_MDEBUG + if (CRYPTO_mem_leaks_fp(stderr) <= 0) + result = 1; +#endif + return result; } diff --git a/test/dhtest.c b/test/dhtest.c index 5940aa78b2..8fad6da4fd 100644 --- a/test/dhtest.c +++ b/test/dhtest.c @@ -194,6 +194,7 @@ int main(int argc, char *argv[]) if (!run_rfc5114_tests()) ret = 1; err: + (void)BIO_flush(out); ERR_print_errors_fp(stderr); OPENSSL_free(abuf); @@ -202,6 +203,12 @@ int main(int argc, char *argv[]) DH_free(a); BN_GENCB_free(_cb); BIO_free(out); + +#ifndef OPENSSL_NO_CRYPTO_MDEBUG + if (CRYPTO_mem_leaks_fp(stderr) <= 0) + ret = 1; +#endif + EXIT(ret); } -- cgit v1.2.3