diff options
author | Martin Willi <martin@revosec.ch> | 2013-06-11 18:29:49 +0200 |
---|---|---|
committer | Martin Willi <martin@revosec.ch> | 2013-06-21 10:53:22 +0200 |
commit | 44886a06671c7d74a503e5e8a2fcaf7ffa72a985 (patch) | |
tree | 0d68d192719498318c406b42ca23e3ff1316c268 /src | |
parent | 52bff138485398af31afb81496a2fb58004dfb27 (diff) | |
download | strongswan-44886a06671c7d74a503e5e8a2fcaf7ffa72a985.tar.bz2 strongswan-44886a06671c7d74a503e5e8a2fcaf7ffa72a985.tar.xz |
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.
Diffstat (limited to 'src')
-rw-r--r-- | src/libstrongswan/tests/test_chunk.c | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/src/libstrongswan/tests/test_chunk.c b/src/libstrongswan/tests/test_chunk.c index 5fa1c0b1d..4f60dab8a 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 |