From 0a8bcf917a6e98593629e4641e2e9e12c7e5a8fa Mon Sep 17 00:00:00 2001 From: Miles Bader Date: Thu, 16 Oct 2003 10:12:45 +0000 Subject: Don't set errno if for zero SIZE returns. Code formatting cleanup. --- libc/stdlib/malloc/malloc.c | 25 ++++++++++++++----------- 1 file changed, 14 insertions(+), 11 deletions(-) (limited to 'libc/stdlib') diff --git a/libc/stdlib/malloc/malloc.c b/libc/stdlib/malloc/malloc.c index 98ac41cd7..5ba552d25 100644 --- a/libc/stdlib/malloc/malloc.c +++ b/libc/stdlib/malloc/malloc.c @@ -186,23 +186,26 @@ malloc (size_t size) __heap_check (&__malloc_heap, "malloc"); #endif -#if defined(__MALLOC_GLIBC_COMPAT__) - if (unlikely(size == 0)) - size++; +#ifdef __MALLOC_GLIBC_COMPAT__ + if (unlikely (size == 0)) + size++; #else /* Some programs will call malloc (0). Lets be strict and return NULL */ - if (unlikely(size == 0)) - goto oom; + if (unlikely (size == 0)) + return 0; #endif + /* Check if they are doing something dumb like malloc(-1) */ if (unlikely(((unsigned long)size > (unsigned long)(MALLOC_HEADER_SIZE*-2)))) - goto oom; + goto oom; mem = malloc_from_heap (size, &__malloc_heap); - if (unlikely(!mem)) { -oom: - __set_errno(ENOMEM); - return NULL; - } + if (unlikely (!mem)) + { + oom: + __set_errno (ENOMEM); + return 0; + } + return mem; } -- cgit v1.2.3