Add underflow check to UNPOISON counter decrement
Make sure that extra UNPOISON calls do not cause the poisoning counter
to underflow and wrap around.
Memory that is unpoisoned multiple times should remain unpoisoned.
Signed-off-by: David Horstmann <david.horstmann@arm.com>
diff --git a/tests/include/test/memory.h b/tests/include/test/memory.h
index 6d0f764..91be573 100644
--- a/tests/include/test/memory.h
+++ b/tests/include/test/memory.h
@@ -93,7 +93,9 @@
#define MBEDTLS_TEST_MEMORY_UNPOISON(ptr, size) \
do { \
mbedtls_test_memory_unpoison(ptr, size); \
- mbedtls_test_memory_poisoning_count--; \
+ if (mbedtls_test_memory_poisoning_count != 0) { \
+ mbedtls_test_memory_poisoning_count--; \
+ } \
} while (0)
#else /* MBEDTLS_TEST_MEMORY_CAN_POISON */