[PATCH 2/4] short circuit out of a few places where we would allocate zero bytes
- From
- Eric Wong <normalperson@yhbt.net>
- Date
- Dec 24, 2005, 12:12 UTC
- Message-ID
- <20051224121243.GA3963@mail.yhbt.net>
- In-Reply-To
- <20051224121007.GA19136@mail.yhbt.net>
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>
---
commit.c | 3 +++ diffcore-rename.c | 2 +- 2 files changed, 4 insertions(+), 1 deletions(-)
ee9d90c652be126345dec2ac204284e80e685160
diff --git a/commit.c b/commit.c index e867b86..edd4ded 100644 --- a/commit.c +++ b/commit.c @@ -560,6 +560,9 @@ void sort_in_topological_order(struct co next = next->next; count++; } + + if (!count) + return; /* allocate an array to help sort the list */ nodes = xcalloc(count, sizeof(*nodes)); /* link the list to the array */ diff --git a/diffcore-rename.c b/diffcore-rename.c index dba965c..39d9126 100644 --- a/diffcore-rename.c +++ b/diffcore-rename.c @@ -282,7 +282,7 @@ void diffcore_rename(struct diff_options else if (detect_rename == DIFF_DETECT_COPY) 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)) goto cleanup; /* nothing to do */
-- 1.0.GIT