svn commit: trunk/uClibc/libc/stdlib: malloc malloc-simple malloc-standard

vapier at uclibc.org vapier at uclibc.org
Mon Apr 2 12:06:00 UTC 2007


Author: vapier
Date: 2007-04-02 05:06:00 -0700 (Mon, 02 Apr 2007)
New Revision: 18301

Log:
POSIX requires that errno be set whenever 0 is returned by malloc()

Modified:
   trunk/uClibc/libc/stdlib/malloc-simple/alloc.c
   trunk/uClibc/libc/stdlib/malloc-standard/malloc.c
   trunk/uClibc/libc/stdlib/malloc/malloc.c


Changeset:
Modified: trunk/uClibc/libc/stdlib/malloc/malloc.c
===================================================================
--- trunk/uClibc/libc/stdlib/malloc/malloc.c	2007-04-02 11:10:22 UTC (rev 18300)
+++ trunk/uClibc/libc/stdlib/malloc/malloc.c	2007-04-02 12:06:00 UTC (rev 18301)
@@ -200,7 +200,7 @@
 #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) */

Modified: trunk/uClibc/libc/stdlib/malloc-simple/alloc.c
===================================================================
--- trunk/uClibc/libc/stdlib/malloc-simple/alloc.c	2007-04-02 11:10:22 UTC (rev 18300)
+++ trunk/uClibc/libc/stdlib/malloc-simple/alloc.c	2007-04-02 12:06:00 UTC (rev 18301)
@@ -32,7 +32,8 @@
 		size++;
 #else
 		/* Some programs will call malloc (0).  Lets be strict and return NULL */
-		return 0;
+		__set_errno(ENOMEM);
+		return NULL;
 #endif
 	}
 

Modified: trunk/uClibc/libc/stdlib/malloc-standard/malloc.c
===================================================================
--- trunk/uClibc/libc/stdlib/malloc-standard/malloc.c	2007-04-02 11:10:22 UTC (rev 18300)
+++ trunk/uClibc/libc/stdlib/malloc-standard/malloc.c	2007-04-02 12:06:00 UTC (rev 18301)
@@ -826,7 +826,10 @@
     void *          retval;
 
 #if !defined(__MALLOC_GLIBC_COMPAT__)
-    if (!bytes) return NULL;
+    if (!bytes) {
+        __set_errno(ENOMEM);
+        return NULL;
+    }
 #endif
 
     __MALLOC_LOCK;




More information about the uClibc-cvs mailing list