From baa7c6f307569ec3ed17688495e29000cd8bc617 Mon Sep 17 00:00:00 2001 From: Colin Cross Date: Wed, 9 Mar 2016 16:33:44 -0800 Subject: malloc_debug: iterate: use usable_size malloc_iterate with malloc debug enabled was returning allocation sizes using the requested size instead of usable size. If anything wrote pointers above the requested size but below the usable size, those pointers would be invisible to libmemunreachable and referenced allocations could be reported as a leak. Bug: 27107100 Change-Id: I6b19fd631f68ce93b3aee408cc3d296ec457bd01 (cherry picked from commit b23c6606d2326f8835fc7fc35b23ff7ee5a48f48) --- libc/malloc_debug/malloc_debug.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'libc/malloc_debug/malloc_debug.cpp') diff --git a/libc/malloc_debug/malloc_debug.cpp b/libc/malloc_debug/malloc_debug.cpp index aa6f5f747..fdad5416c 100644 --- a/libc/malloc_debug/malloc_debug.cpp +++ b/libc/malloc_debug/malloc_debug.cpp @@ -594,7 +594,7 @@ int debug_iterate(uintptr_t base, size_t size, if (g_debug->track->Contains(header)) { // Return just the body of the allocation if we're sure the header exists ctx->callback(reinterpret_cast(g_debug->GetPointer(header)), - header->real_size(), ctx->arg); + header->usable_size, ctx->arg); return; } } -- cgit v1.2.3