From 95cd15c43dc4cd1b1ecc54391e5ae427d7a8eeaf Mon Sep 17 00:00:00 2001 From: phk Date: Fri, 9 Aug 2002 10:16:24 +0000 Subject: [PATCH] Make sure we set errno sensibly in case of failure. Spotted by: ache --- lib/libc/stdlib/malloc.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/lib/libc/stdlib/malloc.c b/lib/libc/stdlib/malloc.c index 3bf29322e9a..d97e87241df 100644 --- a/lib/libc/stdlib/malloc.c +++ b/lib/libc/stdlib/malloc.c @@ -1093,6 +1093,7 @@ malloc(size_t size) wrtwarning("recursive call\n"); malloc_active--; THREAD_UNLOCK(); + errno = EDOFUS; return (0); } if (!malloc_started) @@ -1108,6 +1109,8 @@ malloc(size_t size) THREAD_UNLOCK(); if (malloc_xmalloc && !r) wrterror("out of memory\n"); + if (!r) + errno = ENOMEM; return (r); } @@ -1120,6 +1123,7 @@ free(void *ptr) wrtwarning("recursive call\n"); malloc_active--; THREAD_UNLOCK(); + errno = EDOFUS; return; } if (ptr != ZEROSIZEPTR) @@ -1142,6 +1146,7 @@ realloc(void *ptr, size_t size) wrtwarning("recursive call\n"); malloc_active--; THREAD_UNLOCK(); + errno = EDOFUS; return (0); } if (ptr && !malloc_started) { @@ -1170,6 +1175,8 @@ realloc(void *ptr, size_t size) THREAD_UNLOCK(); if (malloc_xmalloc && err) wrterror("out of memory\n"); + if (err) + errno = ENOMEM; return (r); } -- 2.45.2