From fee423bb68869de02fceaceefbc847e98213574b Mon Sep 17 00:00:00 2001 From: Todd Short Date: Sun, 21 May 2017 10:21:06 -0400 Subject: [PATCH] Fix the mem_sec "small arena" Fix the small arena test to just check for the symptom of the infinite loop (i.e. initialized set on failure), rather than the actual infinite loop. This avoids some valgrind errors. Reviewed-by: Rich Salz Reviewed-by: Andy Polyakov (Merged from https://github.com/openssl/openssl/pull/3512) --- test/secmemtest.c | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/test/secmemtest.c b/test/secmemtest.c index cb7d1ec63d..c7d4fe701f 100644 --- a/test/secmemtest.c +++ b/test/secmemtest.c @@ -68,12 +68,15 @@ static int test_sec_mem(void) TEST_ptr_null(OPENSSL_secure_malloc((size_t)-1)); TEST_true(CRYPTO_secure_malloc_done()); - TEST_info("Possible infinite loop: small arena"); - if (!TEST_false(CRYPTO_secure_malloc_init(16, 16))) + /* + * If init fails, then initialized should be false, if not, this + * could cause an infinite loop secure_malloc, but we don't test it + */ + if (TEST_false(CRYPTO_secure_malloc_init(16, 16)) && + !TEST_false(CRYPTO_secure_malloc_initialized())) { + TEST_true(CRYPTO_secure_malloc_done()); goto end; - TEST_false(CRYPTO_secure_malloc_initialized()); - TEST_ptr_null(OPENSSL_secure_malloc((size_t)-1)); - TEST_true(CRYPTO_secure_malloc_done()); + } /*- * There was also a possible infinite loop when the number of @@ -105,7 +108,7 @@ static int test_sec_mem(void) TEST_true(CRYPTO_secure_malloc_done()); } # endif - + /* this can complete - it was not really secure */ testresult = 1; end: