aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@gmail.com>2011-10-29 16:39:03 -0400
committerUlrich Drepper <drepper@gmail.com>2011-10-29 16:39:03 -0400
commit6ef76f3b515c45a83f7831f806bf97a2af9ed008 (patch)
tree098c3c6dfe036e5e7c45e216ae8dbd1885d11fbb
parent9beb2334930db81ceada5aa6051fe5ac0554db32 (diff)
downloadglibc-6ef76f3b515c45a83f7831f806bf97a2af9ed008.zip
glibc-6ef76f3b515c45a83f7831f806bf97a2af9ed008.tar.gz
glibc-6ef76f3b515c45a83f7831f806bf97a2af9ed008.tar.bz2
Avoid assertion in processes with VM in bad shape
-rw-r--r--ChangeLog4
-rw-r--r--malloc/malloc.c8
2 files changed, 8 insertions, 4 deletions
diff --git a/ChangeLog b/ChangeLog
index 21aa451..4fccd94 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,9 @@
2011-10-29 Ulrich Drepper <drepper@gmail.com>
+ [BZ #13276]
+ * malloc/malloc.c (munmap_chunk): Don't use assertion to check munmap
+ return value.
+
* posix/sys/wait.h: Mark wait and wait4 with __THROWNL.
* libio/stdio.h: Mark sprintf, vsprintf snprintf, vsnprintf, vasprintf,
asprintf, __asprintf, obstack_printf, obstack_vprintf with __THROWNL.
diff --git a/malloc/malloc.c b/malloc/malloc.c
index 864c7d9..8608083 100644
--- a/malloc/malloc.c
+++ b/malloc/malloc.c
@@ -2855,10 +2855,10 @@ munmap_chunk(mchunkptr p)
mp_.n_mmaps--;
mp_.mmapped_mem -= total_size;
- int ret __attribute__ ((unused)) = munmap((char *)block, total_size);
-
- /* munmap returns non-zero on failure */
- assert(ret == 0);
+ /* If munmap failed the process virtual memory address space is in a
+ bad shape. Just leave the block hanging around, the process will
+ terminate shortly anyway since not much can be done. */
+ munmap((char *)block, total_size);
}
#if HAVE_MREMAP