This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
[PATCH] Don't use the main arena in retry path if it is corrupt
- From: "Siddhesh Poyarekar" <siddhesh at redhat dot com>
- To: libc-alpha at sourceware dot org
- Date: Mon, 24 Aug 2015 13:13:56 +0530
- Subject: [PATCH] Don't use the main arena in retry path if it is corrupt
- Authentication-results: sourceware.org; auth=none
If allocation on a non-main arena fails, the main arena is used
without checking to see if it is corrupt. Add a check that avoids the
main arena if it is corrupt.
* malloc/arena.c (arena_get_retry): Don't use main_arena if it is
corrupt.
---
malloc/arena.c | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/malloc/arena.c b/malloc/arena.c
index 11912e9..060eb95 100644
--- a/malloc/arena.c
+++ b/malloc/arena.c
@@ -914,6 +914,10 @@ arena_get_retry (mstate ar_ptr, size_t bytes)
if (ar_ptr != &main_arena)
{
(void) mutex_unlock (&ar_ptr->mutex);
+ /* Don't touch the main arena if it is corrupt. */
+ if (arena_is_corrupt (&main_arena))
+ return NULL;
+
ar_ptr = &main_arena;
(void) mutex_lock (&ar_ptr->mutex);
}
--
2.4.3