]> git.ipfire.org Git - thirdparty/git.git/commitdiff
commit-graph.c: prevent overflow in `load_oid_from_graph()`
authorTaylor Blau <me@ttaylorr.com>
Wed, 12 Jul 2023 23:38:00 +0000 (19:38 -0400)
committerJunio C Hamano <gitster@pobox.com>
Fri, 14 Jul 2023 16:32:03 +0000 (09:32 -0700)
In a similar spirit as previous commits, ensure that we don't overflow
when trying to compute an offset into the `chunk_oid_lookup` table when
the `lex_index` of the item we're trying to look up exceeds
`2^32-1/g->hash_len`.

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

index 17ab3e80295cae8b8b7188bc5d38e842faf85c07..517c816a9450dda2f34e3a94a8a015d1f27a467c 100644 (file)
@@ -754,7 +754,7 @@ static void load_oid_from_graph(struct commit_graph *g,
 
        lex_index = pos - g->num_commits_in_base;
 
-       oidread(oid, g->chunk_oid_lookup + g->hash_len * lex_index);
+       oidread(oid, g->chunk_oid_lookup + st_mult(g->hash_len, lex_index));
 }
 
 static struct commit_list **insert_parent_or_die(struct repository *r,