From 51e474136b6c53a64486a60251a33cce85662b57 Mon Sep 17 00:00:00 2001 From: Olivier Houchard Date: Sun, 16 Dec 2018 00:58:28 +0100 Subject: [PATCH] MINOR: pools: Cast to volatile int * instead of int *. When using DEBUG_MEMORY_POOLS, when we want to crash, instead of using *(int *)0 = 0, use *(volatile int *)0 = 0, or clang will just translate it to a nop, instead of dereferencing 0. --- include/common/memory.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/common/memory.h b/include/common/memory.h index 7e7d30b86..9c54422a2 100644 --- a/include/common/memory.h +++ b/include/common/memory.h @@ -475,7 +475,7 @@ static inline void pool_free(struct pool_head *pool, void *ptr) #ifdef DEBUG_MEMORY_POOLS /* we'll get late corruption if we refill to the wrong pool or double-free */ if (*POOL_LINK(pool, ptr) != (void *)pool) - *(int *)0 = 0; + *(volatile int *)0 = 0; #endif #ifndef DEBUG_UAF /* normal pool behaviour */