about summary refs log tree commit diff
path: root/malloc/hooks.c
diff options
context:
space:
mode:
authorAndreas Schwab <schwab@linux-m68k.org>2021-05-17 14:00:19 +0200
committerAndreas Schwab <schwab@linux-m68k.org>2021-05-17 21:39:23 +0200
commitc6b6b4f2c7ff62abf5da617bff9d8080631993c0 (patch)
treecc0c164211316a09c6bfeff85836e35489ec86e0 /malloc/hooks.c
parentf4605e611a93891b1fdf8d0f48b3fba0d572f1ad (diff)
downloadglibc-c6b6b4f2c7ff62abf5da617bff9d8080631993c0.tar.gz
glibc-c6b6b4f2c7ff62abf5da617bff9d8080631993c0.tar.xz
glibc-c6b6b4f2c7ff62abf5da617bff9d8080631993c0.zip
Missing ENOMEM in realloc_check wrapper (bug 27870)
When MALLOC_CHECK_ is non-zero, the realloc hook missed to set errno to
ENOMEM when called with too big size.  Run the test tst-malloc-too-large
also with MALLOC_CHECK_=3 to catch that.
Diffstat (limited to 'malloc/hooks.c')
-rw-r--r--malloc/hooks.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/malloc/hooks.c b/malloc/hooks.c
index c91f9502ba..8080c3f40e 100644
--- a/malloc/hooks.c
+++ b/malloc/hooks.c
@@ -321,7 +321,10 @@ realloc_check (void *oldmem, size_t bytes, const void *caller)
   const INTERNAL_SIZE_T oldsize = chunksize (oldp);
 
   if (!checked_request2size (rb, &chnb))
-    goto invert;
+    {
+      __set_errno (ENOMEM);
+      goto invert;
+    }
 
   __libc_lock_lock (main_arena.mutex);