From 848247a972038e30e12b0c9f7f049aa97c73b9c7 Mon Sep 17 00:00:00 2001 From: Elliott Hughes Date: Tue, 22 Jan 2013 18:36:28 -0800 Subject: [PATCH] Don't free anything when reporting leaks. We don't know that they're not going to be cleaned up by a C++ global destructor that runs after us. This is the case with bootanimation, for example. Bug: 7291287 Change-Id: Iba402514d1735fdc2ae4bc95b65396d816be46c0 --- libc/bionic/malloc_debug_check.cpp | 4 ---- 1 file changed, 4 deletions(-) diff --git a/libc/bionic/malloc_debug_check.cpp b/libc/bionic/malloc_debug_check.cpp index 60ee0cc20..7b6a5364d 100644 --- a/libc/bionic/malloc_debug_check.cpp +++ b/libc/bionic/malloc_debug_check.cpp @@ -362,8 +362,6 @@ extern "C" void chk_free(void *ptr) { log_message("+++ ALLOCATION %p IS CORRUPTED OR NOT ALLOCATED VIA TRACKER!\n", user(hdr)); log_backtrace(gMapInfo, bt, depth); - /* Leak here so that we do not crash */ - //dlfree(user(hdr)); } } else { hdr->freed_bt_depth = get_backtrace(hdr->freed_bt, @@ -459,14 +457,12 @@ static void heaptracker_free_leaked_memory() { /* safe == 1, because the allocation is valid */ log_backtrace(gMapInfo, del->bt, del->bt_depth); } - dlfree(del); } // log_message("+++ DELETING %d BACKLOGGED ALLOCATIONS\n", backlog_num); while (backlog_head) { del = backlog_tail; del_from_backlog(del); - dlfree(del); } }