diff options
author | Brandon Casey <drafnel@gmail.com> | 2011-10-08 07:20:21 +0400 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2011-10-10 21:05:22 +0400 |
commit | 687296960d774a45df31df7bc371d01106a6f6b7 (patch) | |
tree | 75eb24bf9d3bf622cb72c8c23e4528a21178fc70 /refs.c | |
parent | 43d20a8c50355f7f68548e91bd8822c3cbfff52f (diff) |
refs.c: abort ref search if ref array is empty
The bsearch() implementation on IRIX 6.5 segfaults if it is passed NULL
for the base array argument even if number-of-elements is zero. So, let's
work around it by detecting an empty array and aborting early.
This is a useful optimization in its own right anyway, since we avoid a
useless allocation and initialization of the ref_entry when the ref array
is empty.
Signed-off-by: Brandon Casey <casey@nrlssc.navy.mil>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'refs.c')
-rw-r--r-- | refs.c | 3 |
1 files changed, 3 insertions, 0 deletions
@@ -110,6 +110,9 @@ static struct ref_entry *search_ref_array(struct ref_array *array, const char *n if (name == NULL) return NULL; + if (!array->nr) + return NULL; + len = strlen(name) + 1; e = xmalloc(sizeof(struct ref_entry) + len); memcpy(e->name, name, len); |