diff options
author | Ulrich Drepper <drepper@redhat.com> | 2004-09-09 21:10:29 +0000 |
---|---|---|
committer | Ulrich Drepper <drepper@redhat.com> | 2004-09-09 21:10:29 +0000 |
commit | a962d7dc18f73d075ef0bc4b6e08b05920b49353 (patch) | |
tree | 312bace5c418d3147bb1554642ecbda101f49356 /malloc | |
parent | 14abadc8bf54ed8cf3585aa2f0aa869df4f83983 (diff) | |
download | glibc-a962d7dc18f73d075ef0bc4b6e08b05920b49353.tar.gz glibc-a962d7dc18f73d075ef0bc4b6e08b05920b49353.tar.xz glibc-a962d7dc18f73d075ef0bc4b6e08b05920b49353.zip |
Update.
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.
Diffstat (limited to 'malloc')
-rw-r--r-- | malloc/hooks.c | 2 | ||||
-rw-r--r-- | malloc/malloc.c | 21 |
2 files changed, 15 insertions, 8 deletions
diff --git a/malloc/hooks.c b/malloc/hooks.c index 4de558270f..8a94fd0be8 100644 --- a/malloc/hooks.c +++ b/malloc/hooks.c @@ -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); diff --git a/malloc/malloc.c b/malloc/malloc.c index 824b6cc3f4..0d0990cc35 100644 --- a/malloc/malloc.c +++ b/malloc/malloc.c @@ -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 (); |