From: Martin Willi Date: Tue, 11 Jun 2013 16:29:49 +0000 (+0200) Subject: unit-tests: don't use ck_assert() to test a cleared chunk, as it allocates data X-Git-Tag: 5.1.0dr1~97^2~9 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=44886a06671c7d74a503e5e8a2fcaf7ffa72a985;p=thirdparty%2Fstrongswan.git unit-tests: don't use ck_assert() to test a cleared chunk, as it allocates data The new allocation might be in the freed area, affecting the test result. --- diff --git a/src/libstrongswan/tests/test_chunk.c b/src/libstrongswan/tests/test_chunk.c index 5fa1c0b1d2..4f60dab8aa 100644 --- a/src/libstrongswan/tests/test_chunk.c +++ b/src/libstrongswan/tests/test_chunk.c @@ -97,6 +97,7 @@ START_TEST(test_chunk_clear) chunk_t chunk; u_char *ptr; int i; + bool cleared = TRUE; chunk = chunk_empty; chunk_clear(&chunk); @@ -109,12 +110,18 @@ START_TEST(test_chunk_clear) chunk.ptr[i] = i; } chunk_clear(&chunk); - assert_chunk_empty(chunk); - /* check memory area of freed chunk */ + /* check memory area of freed chunk. We can't use ck_assert() for this + * test directly, as it might allocate data at the freed area. */ for (i = 0; i < 64; i++) { - ck_assert(ptr[i] == 0 || ptr[i] != i); + if (ptr[i] != 0 && ptr[i] == i) + { + cleared = FALSE; + break; + } } + assert_chunk_empty(chunk); + ck_assert(cleared); } END_TEST