The branch OpenSSL_1_1_0-stable has been updated via 0a2a5d26cea54f490474a366100cf4860a54e030 (commit) from 4b9c2669f31da26bfe56f629973fa014083dc2a0 (commit)
- Log ----------------------------------------------------------------- commit 0a2a5d26cea54f490474a366100cf4860a54e030 Author: Todd Short <tsh...@akamai.com> Date: Thu Nov 17 11:56:47 2016 -0500 Skipping tests in evp_test leaks memory When configured with "no-mdc2 enable-crypto-mdebug" the evp_test will leak memory due to skipped tests, and error out. Also fix a skip condition Reviewed-by: Richard Levitte <levi...@openssl.org> Reviewed-by: Rich Salz <rs...@openssl.org> (Merged from https://github.com/openssl/openssl/pull/1946) ----------------------------------------------------------------------- Summary of changes: test/evp_test.c | 39 ++++++++++++++++++++------------------- 1 file changed, 20 insertions(+), 19 deletions(-) diff --git a/test/evp_test.c b/test/evp_test.c index 0c352d6..907e083 100644 --- a/test/evp_test.c +++ b/test/evp_test.c @@ -351,25 +351,28 @@ static int setup_test(struct evp_test *t, const struct evp_test_method *tmeth) if (t->meth) { t->ntests++; if (t->skip) { - t->meth = tmeth; t->nskip++; - return 1; - } - t->err = NULL; - if (t->meth->run_test(t) != 1) { - fprintf(stderr, "%s test error line %d\n", - t->meth->name, t->start_line); - return 0; - } - if (!check_test_error(t)) { - if (t->err) - ERR_print_errors_fp(stderr); - t->errors++; + } else { + /* run the test */ + t->err = NULL; + if (t->meth->run_test(t) != 1) { + fprintf(stderr, "%s test error line %d\n", + t->meth->name, t->start_line); + return 0; + } + if (!check_test_error(t)) { + if (t->err) + ERR_print_errors_fp(stderr); + t->errors++; + } } + /* clean it up */ ERR_clear_error(); - t->meth->cleanup(t); - OPENSSL_free(t->data); - t->data = NULL; + if (t->data != NULL) { + t->meth->cleanup(t); + OPENSSL_free(t->data); + t->data = NULL; + } OPENSSL_free(t->expected_err); t->expected_err = NULL; free_expected(t); @@ -1212,9 +1215,7 @@ static int pkey_test_init(struct evp_test *t, const char *name, rv = find_key(&pkey, name, t->public); if (!rv) rv = find_key(&pkey, name, t->private); - if (!rv) - return 0; - if (!pkey) { + if (!rv || pkey == NULL) { t->skip = 1; return 1; } _____ openssl-commits mailing list To unsubscribe: https://mta.openssl.org/mailman/listinfo/openssl-commits