mtrace: properly handle realloc (p, 0)
authorAndreas Schwab <schwab@linux-m68k.org>
Sat, 22 Dec 2012 16:24:44 +0000 (17:24 +0100)
committerAndreas Schwab <schwab@linux-m68k.org>
Thu, 3 Jan 2013 10:18:04 +0000 (11:18 +0100)
ChangeLog
malloc/mtrace.c

index 8f46eba..2611e75 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2013-01-03  Andreas Schwab  <schwab@linux-m68k.org>
+
+       [BZ #14981]
+       * malloc/mtrace.c (tr_reallochook): If realloc returns NULL when
+       size is zero, record memory as freed.
+
 2013-01-03  Andreas Jaeger  <aj@suse.de>
 
        * po/ia.po: Add new Interlingua translation.
index af3b7f8..e9ccfa2 100644 (file)
@@ -219,8 +219,13 @@ tr_reallochook (ptr, size, caller)
 
   tr_where (caller, info);
   if (hdr == NULL)
-    /* Failed realloc.  */
-    fprintf (mallstream, "! %p %#lx\n", ptr, (unsigned long int) size);
+    {
+      if (size != 0)
+       /* Failed realloc.  */
+       fprintf (mallstream, "! %p %#lx\n", ptr, (unsigned long int) size);
+      else
+       fprintf (mallstream, "- %p\n", ptr);
+    }
   else if (ptr == NULL)
     fprintf (mallstream, "+ %p %#lx\n", hdr, (unsigned long int) size);
   else