From f94cf0cec34b75aefe9a1df1e3cc05d9a40f0415 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gustaf=20Alh=C3=A4ll?= <gustaf@hanicef.me> Date: Thu, 20 Mar 2025 20:42:19 +0100 Subject: [PATCH] Fix ASAN poisoning --- src/z_zone.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/z_zone.c b/src/z_zone.c index 9370bf4e3..dabd68dfa 100644 --- a/src/z_zone.c +++ b/src/z_zone.c @@ -446,6 +446,7 @@ void Z_IterateTags(INT32 lowtag, INT32 hightag, boolean (*iterfunc)(void *)) for (block = head.next; block != &head; block = next) { + ASAN_UNPOISON_MEMORY_REGION(block, sizeof(memblock_t)); next = block->next; // get link before possibly freeing if (block->tag >= lowtag && block->tag <= hightag) @@ -454,6 +455,8 @@ void Z_IterateTags(INT32 lowtag, INT32 hightag, boolean (*iterfunc)(void *)) boolean free = iterfunc(mem); if (free) Z_Free(mem); + else + ASAN_POISON_MEMORY_REGION(block, sizeof(memblock_t)); } } } @@ -575,7 +578,7 @@ void Z_CheckHeap(INT32 i) #endif ); } - ASAN_POISON_MEMORY_REGION(block, sizeof(memblock_t)); + ASAN_UNPOISON_MEMORY_REGION(block, sizeof(memblock_t)); } } -- GitLab