OSDN Git Service

malloc_usable_size returns the original size.
authorChristopher Ferris <cferris@google.com>
Thu, 14 Aug 2014 19:48:04 +0000 (12:48 -0700)
committerChristopher Ferris <cferris@google.com>
Mon, 18 Aug 2014 20:10:16 +0000 (13:10 -0700)
Bug: 16874447

(cherry picked from commit 59c1ee44d0a560a754513fab12641c8a57a20d9e)

Change-Id: I70839632974367c8b9893fb1f9c5ee4364608470

libc/bionic/malloc_debug_leak.cpp

index 837dccc..27b6714 100644 (file)
@@ -481,11 +481,15 @@ extern "C" size_t leak_malloc_usable_size(const void* mem) {
             return 0;
         }
 
+        // TODO: Temporary workaround to avoid a crash b/16874447.
+        return header->entry->size & ~SIZE_FLAG_MASK;
+#if 0
         size_t ret = g_malloc_dispatch->malloc_usable_size(header);
         if (ret != 0) {
             // The usable area starts at 'mem' and stops at 'header+ret'.
             return reinterpret_cast<uintptr_t>(header) + ret - reinterpret_cast<uintptr_t>(mem);
         }
+#endif
     }
     return 0;
 }