Browse Source

short circuit out of a few places where we would allocate zero bytes

dietlibc versions of malloc, calloc and realloc all return NULL if
they're told to allocate 0 bytes, causes the x* wrappers to die().

There are several more places where these calls could end up asking
for 0 bytes, too...

Maybe simply not die()-ing in the x* wrappers if 0/NULL is returned
when the requested size is zero is a safer and easier way to go.

Signed-off-by: Eric Wong <normalperson@yhbt.net>
Signed-off-by: Junio C Hamano <junkio@cox.net>
maint
Eric Wong 19 years ago committed by Junio C Hamano
parent
commit
7d6fb370bc
  1. 3
      commit.c
  2. 2
      diffcore-rename.c

3
commit.c

@ -560,6 +560,9 @@ void sort_in_topological_order(struct commit_list ** list)
next = next->next; next = next->next;
count++; count++;
} }
if (!count)
return;
/* allocate an array to help sort the list */ /* allocate an array to help sort the list */
nodes = xcalloc(count, sizeof(*nodes)); nodes = xcalloc(count, sizeof(*nodes));
/* link the list to the array */ /* link the list to the array */

2
diffcore-rename.c

@ -282,7 +282,7 @@ void diffcore_rename(struct diff_options *options)
else if (detect_rename == DIFF_DETECT_COPY) else if (detect_rename == DIFF_DETECT_COPY)
register_rename_src(p->one, 1); register_rename_src(p->one, 1);
} }
if (rename_dst_nr == 0 || if (rename_dst_nr == 0 || rename_src_nr == 0 ||
(0 < rename_limit && rename_limit < rename_dst_nr)) (0 < rename_limit && rename_limit < rename_dst_nr))
goto cleanup; /* nothing to do */ goto cleanup; /* nothing to do */



Loading…
Cancel
Save