]> pd.if.org Git - pdclib/commitdiff
Fix for #42 - free( NULL ) must not fail.
authorsolar <unknown>
Sun, 20 Feb 2011 20:48:48 +0000 (20:48 +0000)
committersolar <unknown>
Sun, 20 Feb 2011 20:48:48 +0000 (20:48 +0000)
functions/stdlib/free.c

index 43de1299846b9f66162560e733996be060f8495e..4370487750ad2dbddbc71860833926f1a34de3c7 100644 (file)
@@ -22,6 +22,10 @@ extern struct _PDCLIB_headnode_t _PDCLIB_memlist;
 
 void free( void * ptr )
 {
+    if ( ptr == NULL )
+    {
+        return;
+    }
     ptr = (void *)( (char *)ptr - sizeof( struct _PDCLIB_memnode_t ) );
     ( (struct _PDCLIB_memnode_t *)ptr )->next = NULL;
     if ( _PDCLIB_memlist.last != NULL )
@@ -39,10 +43,12 @@ void free( void * ptr )
 
 #ifdef TEST
 #include <_PDCLIB_test.h>
+#include <stdbool.h>
 
 int main( void )
 {
-    /* tests covered in malloc test driver */
+    free( NULL );
+    TESTCASE( true );
     return TEST_RESULTS;
 }