mergesort: avoid left shift overflow

Use size_t to match n when building the bitmask for checking whether a
rank is occupied, instead of the default signed int.

Signed-off-by: René Scharfe <l.s.r@web.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
René Scharfe 2021-11-16 00:19:38 +01:00 committed by Junio C Hamano
parent c90cfc225b
commit 42c456ff81

View File

@ -63,7 +63,7 @@ void *llist_mergesort(void *list,
void *next = get_next_fn(list);
if (next)
set_next_fn(list, NULL);
for (i = 0; n & (1 << i); i++)
for (i = 0; n & ((size_t)1 << i); i++)
list = llist_merge(ranks[i], list, get_next_fn,
set_next_fn, compare_fn);
n++;