]> git.ipfire.org Git - thirdparty/git.git/commit
midx.c: prevent overflow in `nth_midxed_object_oid()`
authorTaylor Blau <me@ttaylorr.com>
Wed, 12 Jul 2023 23:37:38 +0000 (19:37 -0400)
committerJunio C Hamano <gitster@pobox.com>
Fri, 14 Jul 2023 16:32:03 +0000 (09:32 -0700)
commitc2b24ede229dbc6686e37c8cae1e169fc356049e
tree0395b2b22fde30fded345cb5645c4bc2fe57dcf6
parente6c71f239d18af3b99af8fa2b68f16cee813d1e2
midx.c: prevent overflow in `nth_midxed_object_oid()`

In a similar spirit as previous commits, avoid overflow when looking up
an object's OID in a MIDX when its position is greater than
`2^32-1/m->hash_len`.

As usual, it is perfectly OK for a MIDX to have as many as 2^32-1
objects (since we use 32-bit fields to count the number of objects at
each fanout layer). But if we have more than `2^32-1/m->hash_len` number
of objects, we will incorrectly perform the computation using 32-bit
integers, overflowing the result.

Signed-off-by: Taylor Blau <me@ttaylorr.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
midx.c