Overflow is defined for unsigned integers, but not for signed ones. Make the ring buffer index in sha1_to_hex() unsigned to be on the safe side. Signed-off-by: Rene Scharfe <l.s.r@xxxxxx> --- Hard to trigger, but probably even harder to diagnose once someone somehow manages to do it on some uncommon architecture. hex.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hex.c b/hex.c index ab2610e..8c6c189 100644 --- a/hex.c +++ b/hex.c @@ -76,7 +76,7 @@ char *oid_to_hex_r(char *buffer, const struct object_id *oid) char *sha1_to_hex(const unsigned char *sha1) { - static int bufno; + static unsigned int bufno; static char hexbuffer[4][GIT_SHA1_HEXSZ + 1]; return sha1_to_hex_r(hexbuffer[3 & ++bufno], sha1); } -- 2.10.1