summary refs log tree commit diff
diff options
context:
space:
mode:
authorAndreas Schwab <schwab@linux-m68k.org>2012-12-22 17:24:44 +0100
committerAndreas Schwab <schwab@linux-m68k.org>2013-01-03 11:18:04 +0100
commit2f5f40f465c5c1af651727e756fd007fd11f2236 (patch)
treead9f3b9459925b440ec1537ecba5fc5286c8d323
parent4056f4a03a524c94bdd02515e855043c8bb041d2 (diff)
downloadglibc-2f5f40f465c5c1af651727e756fd007fd11f2236.tar.gz
glibc-2f5f40f465c5c1af651727e756fd007fd11f2236.tar.xz
glibc-2f5f40f465c5c1af651727e756fd007fd11f2236.zip
mtrace: properly handle realloc (p, 0)
-rw-r--r--ChangeLog6
-rw-r--r--malloc/mtrace.c9
2 files changed, 13 insertions, 2 deletions
diff --git a/ChangeLog b/ChangeLog
index 8f46eba3ee..2611e75814 100644
--- 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.
diff --git a/malloc/mtrace.c b/malloc/mtrace.c
index af3b7f8ada..e9ccfa299d 100644
--- a/malloc/mtrace.c
+++ b/malloc/mtrace.c
@@ -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