summaryrefslogtreecommitdiff
path: root/libc/stdlib
diff options
context:
space:
mode:
Diffstat (limited to 'libc/stdlib')
-rw-r--r--libc/stdlib/malloc-930716/malloc.c5
-rw-r--r--libc/stdlib/malloc/malloc.c5
2 files changed, 10 insertions, 0 deletions
diff --git a/libc/stdlib/malloc-930716/malloc.c b/libc/stdlib/malloc-930716/malloc.c
index 2467da41c..dce32b90b 100644
--- a/libc/stdlib/malloc-930716/malloc.c
+++ b/libc/stdlib/malloc-930716/malloc.c
@@ -160,9 +160,14 @@ void * __malloc_unlocked (size_t size)
size_t log, block, blocks, i, lastblocks, start;
struct list *next;
+#if defined(__MALLOC_GLIBC_COMPAT__)
+ if (size == 0)
+ size++;
+#else
/* Some programs will call malloc (0). Lets be strict and return NULL */
if (size == 0)
return NULL;
+#endif
if (size < sizeof (struct list))
size = sizeof (struct list);
diff --git a/libc/stdlib/malloc/malloc.c b/libc/stdlib/malloc/malloc.c
index 7bbd2726b..5f88cf48e 100644
--- a/libc/stdlib/malloc/malloc.c
+++ b/libc/stdlib/malloc/malloc.c
@@ -184,8 +184,13 @@ malloc (size_t size)
__heap_check (&__malloc_heap, "malloc");
#endif
+#if defined(__MALLOC_GLIBC_COMPAT__)
if (size == 0)
return 0;
+#else
+ if (size == 0)
+ size++;
+#endif
return malloc_from_heap (size, &__malloc_heap);
}