Update.
authorUlrich Drepper <drepper@redhat.com>
Thu, 9 Sep 2004 21:10:29 +0000 (21:10 +0000)
committerUlrich Drepper <drepper@redhat.com>
Thu, 9 Sep 2004 21:10:29 +0000 (21:10 +0000)
2004-09-09  Ulrich Drepper  <drepper@redhat.com>

* malloc/hooks.c (top_check): Print top chunk corruption as normal
error message.

* malloc/malloc.c (malloc_printerr): Don't make informational
message look like error message.

ChangeLog
malloc/hooks.c
malloc/malloc.c

index c0868ed..f47efd0 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,11 @@
+2004-09-09  Ulrich Drepper  <drepper@redhat.com>
+
+       * malloc/hooks.c (top_check): Print top chunk corruption as normal
+       error message.
+
+       * malloc/malloc.c (malloc_printerr): Don't make informational
+       message look like error message.
+
 2004-09-09  Andreas Jaeger  <aj@suse.de>
 
        * nscd/Makefile (CFLAGS-nscd_setup_thread.c): Set to -fpie.
index 4de5582..8a94fd0 100644 (file)
@@ -216,7 +216,7 @@ top_check()
   if((char*)t + chunksize(t) == mp_.sbrk_base + main_arena.system_mem ||
      t == initial_top(&main_arena)) return 0;
 
-  malloc_printerr (check_action | 4, "malloc: top chunk is corrupt", NULL);
+  malloc_printerr (check_action, "malloc: top chunk is corrupt", t);
 
   /* Try to set up a new top chunk. */
   brk = MORECORE(0);
index 824b6cc..0d0990c 100644 (file)
@@ -5453,13 +5453,20 @@ malloc_printerr(int action, const char *str, void *ptr)
        }
 
       struct iovec iov[3];
-      iov[0].iov_base = (char *) "*** glibc detected *** ";
-      iov[0].iov_len = strlen (iov[0].iov_base);
-      iov[1].iov_base = (char *) str;
-      iov[1].iov_len = strlen (str);
-      iov[2].iov_base = cp;
-      iov[2].iov_len = &buf[sizeof (buf) - 1] - cp;
-      TEMP_FAILURE_RETRY (__writev (STDERR_FILENO, iov, 3));
+      int n = 0;
+      if ((action & 4) == 0)
+       {
+         iov[0].iov_base = (char *) "*** glibc detected *** ";
+         iov[0].iov_len = strlen (iov[0].iov_base);
+         ++n;
+       }
+      iov[n].iov_base = (char *) str;
+      iov[n].iov_len = strlen (str);
+      ++n;
+      iov[n].iov_base = cp;
+      iov[n].iov_len = &buf[sizeof (buf) - 1] - cp;
+      ++n;
+      TEMP_FAILURE_RETRY (__writev (STDERR_FILENO, iov, n));
     }
   if (action & 2)
     abort ();