diff --git a/refs.c b/refs.c index d3e4056311..629740670c 100644 --- a/refs.c +++ b/refs.c @@ -96,6 +96,7 @@ static void sort_ref_array(struct ref_array *array) die("Duplicated ref, and SHA1s don't match: %s", a->name); warning("Duplicated ref: %s", a->name); + free(b); continue; } i++; @@ -112,6 +113,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);