Skip to content

Commit 8556f8d

Browse files
mhaggergitster
authored andcommitted
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 <[email protected]> Signed-off-by: Junio C Hamano <[email protected]>
1 parent a552e50 commit 8556f8d

File tree

1 file changed

+8
-2
lines changed

1 file changed

+8
-2
lines changed

refs.c

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1709,13 +1709,19 @@ int ref_update_reject_duplicates(struct string_list *refnames,
17091709

17101710
assert(err);
17111711

1712-
for (i = 1; i < n; i++)
1713-
if (!strcmp(refnames->items[i - 1].string, refnames->items[i].string)) {
1712+
for (i = 1; i < n; i++) {
1713+
int cmp = strcmp(refnames->items[i - 1].string,
1714+
refnames->items[i].string);
1715+
1716+
if (!cmp) {
17141717
strbuf_addf(err,
17151718
"multiple updates for ref '%s' not allowed.",
17161719
refnames->items[i].string);
17171720
return 1;
1721+
} else if (cmp > 0) {
1722+
die("BUG: ref_update_reject_duplicates() received unsorted list");
17181723
}
1724+
}
17191725
return 0;
17201726
}
17211727

0 commit comments

Comments
 (0)