From 57ce2d8243449bd037d58cbceed2596a3831374a Mon Sep 17 00:00:00 2001 From: Osama Abdelkader Date: Mon, 1 Dec 2025 13:35:36 +0100 Subject: [PATCH] Fix allocation_index increment in malloc_internal The allocation_index was being incremented before checking if mmap() succeeds. If mmap() fails, allocation_index would still be incremented, creating a gap in the allocations tracking array and making allocation_index inconsistent with the actual number of successful allocations. This fix moves the allocation_index increment to after the mmap() success check, ensuring it only increments when an allocation actually succeeds. This maintains proper tracking for leak detection and prevents gaps in the allocations array. Signed-off-by: Osama Abdelkader Reviewed-by: Florian Weimer --- malloc/tst-interpose-aux.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/malloc/tst-interpose-aux.c b/malloc/tst-interpose-aux.c index cf4b8ab25e..55e9623ae0 100644 --- a/malloc/tst-interpose-aux.c +++ b/malloc/tst-interpose-aux.c @@ -157,11 +157,11 @@ malloc_internal (size_t size) return NULL; } - size_t index = allocation_index++; void *result = mmap (NULL, allocation_size, PROT_READ | PROT_WRITE, MAP_PRIVATE | MAP_ANONYMOUS, -1, 0); if (result == MAP_FAILED) return NULL; + size_t index = allocation_index++; allocations[index] = result; *allocations[index] = (struct allocation_header) {