From: Michael Haggerty Date: Mon, 22 May 2017 14:17:47 +0000 (+0200) Subject: ref_update_reject_duplicates(): add a sanity check X-Git-Tag: v2.14.0-rc0~109^2~8 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=8556f8d61330ec677dc48b0ef39e2017d6927708;p=thirdparty%2Fgit.git ref_update_reject_duplicates(): add a sanity check It's pretty cheap to make sure that the caller didn't pass us an unsorted list by accident, so do so. Signed-off-by: Michael Haggerty Signed-off-by: Junio C Hamano --- diff --git a/refs.c b/refs.c index 143936a9c3..d1c781d94e 100644 --- a/refs.c +++ b/refs.c @@ -1709,13 +1709,19 @@ int ref_update_reject_duplicates(struct string_list *refnames, assert(err); - for (i = 1; i < n; i++) - if (!strcmp(refnames->items[i - 1].string, refnames->items[i].string)) { + for (i = 1; i < n; i++) { + int cmp = strcmp(refnames->items[i - 1].string, + refnames->items[i].string); + + if (!cmp) { strbuf_addf(err, "multiple updates for ref '%s' not allowed.", refnames->items[i].string); return 1; + } else if (cmp > 0) { + die("BUG: ref_update_reject_duplicates() received unsorted list"); } + } return 0; }