summaryrefslogtreecommitdiffstats
path: root/test/secmemtest.c
diff options
context:
space:
mode:
authorTodd Short <tshort@akamai.com>2017-05-21 10:21:06 -0400
committerAndy Polyakov <appro@openssl.org>2017-05-22 11:06:35 +0200
commitfee423bb68869de02fceaceefbc847e98213574b (patch)
treefe53e6a649b5f9937beca06115727d75cdaf3341 /test/secmemtest.c
parenta486561b691d6293a901b412172ca0c6d1ffc0dc (diff)
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)
Diffstat (limited to 'test/secmemtest.c')
-rw-r--r--test/secmemtest.c15
1 files 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: