On Mon, Oct 09, 2023 at 05:05:38PM -0400, Jeff King wrote: > --- > commit-graph.c | 20 ++++++++++++++------ > commit-graph.h | 1 + > t/t5318-commit-graph.sh | 8 ++++++++ > 3 files changed, 23 insertions(+), 6 deletions(-) All looks good here, and the proposed log message is very clear and well-written. One minor note below... > @@ -931,14 +932,21 @@ static int fill_commit_in_graph(struct repository *r, > return 1; > } > > - parent_data_ptr = (uint32_t*)(g->chunk_extra_edges + > - st_mult(4, edge_value & GRAPH_EDGE_LAST_MASK)); > + parent_data_pos = edge_value & GRAPH_EDGE_LAST_MASK; > do { > - edge_value = get_be32(parent_data_ptr); > + if (g->chunk_extra_edges_size / sizeof(uint32_t) <= parent_data_pos) { > + error("commit-graph extra-edges pointer out of bounds"); It might be nice to add some extra data here, too, like which commit OID we were trying to load, the offset we were supposed to read at, and the size of the extra edges chunk itself. We should probably also mark this string for translation, but both are minor points. Thanks, Taylor