summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--lib/libc/stdlib/malloc.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/lib/libc/stdlib/malloc.c b/lib/libc/stdlib/malloc.c
index 3bf2932..d97e872 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);
}
OpenPOWER on IntegriCloud