make realloc behave like most Unix realloc versions when handed a
authorceriel <none@none>
Wed, 29 Mar 1989 12:58:18 +0000 (12:58 +0000)
committerceriel <none@none>
Wed, 29 Mar 1989 12:58:18 +0000 (12:58 +0000)
null pointer

modules/src/malloc/mal.c

index 44a1926..b7a72ac 100644 (file)
@@ -221,9 +221,16 @@ realloc(addr, n)
        char *addr;
        register unsigned int n;
 {check_mallinks("realloc entry");{
-       register mallink *ml = mallink_of_block(addr), *ph_next;
+       register mallink *ml, *ph_next;
        register unsigned int size;
 
+       if (addr == 0) {
+               /*      Behave like most Unix realloc's when handed a
+                       null-pointer
+               */
+               return malloc(n);
+       }
+       ml = mallink_of_block(addr);
        if (n < MIN_SIZE) n = align(MIN_SIZE); else n = align(n);
        if (free_of(ml)) {
                unlink_free_chunk(ml);