aboutsummaryrefslogtreecommitdiffstats
path: root/libtest
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--libtest/config.mk5
-rw-r--r--libtest/config_backtraces=false.mk2
-rw-r--r--libtest/config_backtraces=true.mk2
-rw-r--r--libtest/libtest_free.c13
4 files changed, 14 insertions, 8 deletions
diff --git a/libtest/config.mk b/libtest/config.mk
index 9538ee9..49179b4 100644
--- a/libtest/config.mk
+++ b/libtest/config.mk
@@ -1,6 +1,11 @@
WITH_BACKTRACE = false
IMPLEMENT_MMAP = true
+BZERO_CHECK_CPPFLAGS != \
+ if test -n "$(ARGON2_VERSION)"; then\
+ echo -DDONT_CHECK_MEMORY_ZEROED\
+ ;fi
+
TEST_CONFIGFILE = config_backtraces=$(WITH_BACKTRACE).mk
include $(TEST_INCLUDE_PREFIX)$(TEST_CONFIGFILE)
diff --git a/libtest/config_backtraces=false.mk b/libtest/config_backtraces=false.mk
index ff6b659..3b167af 100644
--- a/libtest/config_backtraces=false.mk
+++ b/libtest/config_backtraces=false.mk
@@ -1,6 +1,6 @@
include $(TEST_INCLUDE_PREFIX)common-config.mk
TEST_CPPFLAGS = -D_DEFAULT_SOURCE -D_BSD_SOURCE -D_XOPEN_SOURCE=700 -D_GNU_SOURCE\
- $(IMPLEMENT_MMAP_CPPFLAGS)
+ $(IMPLEMENT_MMAP_CPPFLAGS) $(BZERO_CHECK_CPPFLAGS)
TEST_CFLAGS =
TEST_LDFLAGS =
diff --git a/libtest/config_backtraces=true.mk b/libtest/config_backtraces=true.mk
index aac9cc3..3db1e2e 100644
--- a/libtest/config_backtraces=true.mk
+++ b/libtest/config_backtraces=true.mk
@@ -1,7 +1,7 @@
include $(TEST_INCLUDE_PREFIX)common-config.mk
TEST_CPPFLAGS = -D_DEFAULT_SOURCE -D_BSD_SOURCE -D_XOPEN_SOURCE=700 -D_GNU_SOURCE\
- $(IMPLEMENT_MMAP_CPPFLAGS) -DWITH_BACKTRACE
+ $(IMPLEMENT_MMAP_CPPFLAGS) $(BZERO_CHECK_CPPFLAGS) -DWITH_BACKTRACE
TEST_CFLAGS = -g
TEST_LDFLAGS = -lunwind -ldw
diff --git a/libtest/libtest_free.c b/libtest/libtest_free.c
index d46218e..8667e85 100644
--- a/libtest/libtest_free.c
+++ b/libtest/libtest_free.c
@@ -8,8 +8,7 @@ libtest_free(void *ptr, enum libtest_zero_check zero_checking)
{
struct meminfo *mem;
int saved_errno = errno;
- int unmap_err, memory_zeroed;
- uint8_t *usable_area;
+ int unmap_err;
size_t i;
#ifdef WITH_BACKTRACE
static _Thread_local int inside_free = 0;
@@ -52,10 +51,11 @@ libtest_free(void *ptr, enum libtest_zero_check zero_checking)
}
SPINUNLOCK(libtest_allocs_list_spinlock);
+#ifndef DONT_CHECK_MEMORY_ZEROED
/* Check memory is zeroed */
if (zero_checking && libtest_expect_zeroed && !mem->accept_leakage) {
- usable_area = mem->usable_area;
- memory_zeroed = 1;
+ uint8_t *usable_area = mem->usable_area;
+ int memory_zeroed = 1;
for (i = 0u; i < mem->usable_alloc_size; i++) {
if (usable_area[i]) {
memory_zeroed = 0;
@@ -63,7 +63,7 @@ libtest_free(void *ptr, enum libtest_zero_check zero_checking)
break;
}
}
-#ifdef WITH_BACKTRACE
+# ifdef WITH_BACKTRACE
if (!memory_zeroed && mem->backtrace) {
libtest_malloc_internal_usage++;
inside_free = 1;
@@ -72,9 +72,10 @@ libtest_free(void *ptr, enum libtest_zero_check zero_checking)
0u, mem->backtrace, NULL);
inside_free = 0;
}
-#endif
+# endif
assert(memory_zeroed);
}
+#endif
/* Optionally print out trace */
#ifdef WITH_BACKTRACE