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 <rsalz@openssl.org>
Reviewed-by: Andy Polyakov <appro@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/3512)
This commit is contained in:
Todd Short 2017-05-21 10:21:06 -04:00 committed by Andy Polyakov
parent a486561b69
commit fee423bb68

View file

@ -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: