diff options
author | Mike Frysinger <vapier@gentoo.org> | 2007-04-02 12:06:00 +0000 |
---|---|---|
committer | Mike Frysinger <vapier@gentoo.org> | 2007-04-02 12:06:00 +0000 |
commit | c9210d381426332b9af4e7b01086dcea1fd49d05 (patch) | |
tree | 838b5a9ae2bc6761e7d64cb481a47b98c433b426 /libc/stdlib | |
parent | b612121d0d4b220041b43e591c802a82e028e34d (diff) |
POSIX requires that errno be set whenever 0 is returned by malloc()
Diffstat (limited to 'libc/stdlib')
-rw-r--r-- | libc/stdlib/malloc-simple/alloc.c | 3 | ||||
-rw-r--r-- | libc/stdlib/malloc-standard/malloc.c | 5 | ||||
-rw-r--r-- | libc/stdlib/malloc/malloc.c | 2 |
3 files changed, 7 insertions, 3 deletions
diff --git a/libc/stdlib/malloc-simple/alloc.c b/libc/stdlib/malloc-simple/alloc.c index 0b842076d..321f31932 100644 --- a/libc/stdlib/malloc-simple/alloc.c +++ b/libc/stdlib/malloc-simple/alloc.c @@ -32,7 +32,8 @@ void *malloc(size_t size) size++; #else /* Some programs will call malloc (0). Lets be strict and return NULL */ - return 0; + __set_errno(ENOMEM); + return NULL; #endif } diff --git a/libc/stdlib/malloc-standard/malloc.c b/libc/stdlib/malloc-standard/malloc.c index 85b5081e3..3253ebda6 100644 --- a/libc/stdlib/malloc-standard/malloc.c +++ b/libc/stdlib/malloc-standard/malloc.c @@ -826,7 +826,10 @@ void* malloc(size_t bytes) void * retval; #if !defined(__MALLOC_GLIBC_COMPAT__) - if (!bytes) return NULL; + if (!bytes) { + __set_errno(ENOMEM); + return NULL; + } #endif __MALLOC_LOCK; diff --git a/libc/stdlib/malloc/malloc.c b/libc/stdlib/malloc/malloc.c index 2ec8b07da..373b5dcd7 100644 --- a/libc/stdlib/malloc/malloc.c +++ b/libc/stdlib/malloc/malloc.c @@ -200,7 +200,7 @@ malloc (size_t size) #else /* Some programs will call malloc (0). Lets be strict and return NULL */ if (unlikely (size == 0)) - return 0; + goto oom; #endif /* Check if they are doing something dumb like malloc(-1) */ |