OSDN Git Service

Be more strict with the malloc implementation. Return NULL
authorEric Andersen <andersen@codepoet.org>
Wed, 25 Apr 2001 16:09:48 +0000 (16:09 -0000)
committerEric Andersen <andersen@codepoet.org>
Wed, 25 Apr 2001 16:09:48 +0000 (16:09 -0000)
when folks do a malloc(0) using malloc-simple.
 -Erik

libc/stdlib/malloc-simple/alloc.c

index 02231fb..630f4c8 100644 (file)
@@ -25,13 +25,13 @@ void *calloc_dbg(size_t num, size_t size, char *function, char *file,
 
 #ifdef L_malloc_dbg
 
-void *malloc_dbg(size_t len, char *function, char *file, int line)
+void *malloc_dbg(size_t size, char *function, char *file, int line)
 {
        void *result;
 
-       fprintf(stderr, "malloc of %d bytes at %s @%s:%d = ", len, function,
+       fprintf(stderr, "malloc of %d bytes at %s @%s:%d = ", size, function,
                        file, line);
-       result = malloc(len);
+       result = malloc(size);
        fprintf(stderr, "%p\n", result);
        return result;
 }
@@ -65,9 +65,14 @@ void *calloc(size_t num, size_t size)
 
 #ifdef L_malloc
 
-void *malloc(size_t len)
+void *malloc(size_t size)
 {
-       void *result = mmap((void *) 0, len, PROT_READ | PROT_WRITE,
+#if 1
+    /* Some programs will call malloc (0).  Lets be strict and return NULL */
+    if (size == 0)
+       return NULL;
+#endif
+       void *result = mmap((void *) 0, size, PROT_READ | PROT_WRITE,
 #ifdef __UCLIBC_HAS_MMU__
                                                MAP_PRIVATE | MAP_ANONYMOUS, 0, 0
 #else