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 181280f..20fd8d3 100644
--- a/tests/include/test/memory.h
+++ b/tests/include/test/memory.h
@@ -94,7 +94,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 */