From: Jeff King Date: Tue, 3 Oct 2023 20:30:44 +0000 (-0400) Subject: commit-graph: free graph struct that was not added to chain X-Git-Tag: v2.43.0-rc0~38^2~3 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=1d94abfe1eedb3f0a9de74ba59483ef8f10b352c;p=thirdparty%2Fgit.git commit-graph: free graph struct that was not added to chain When reading the graph chain file, we open (and allocate) each individual slice it mentions and then add them to a linked-list chain. But if adding to the chain fails (e.g., because the base-graph chunk it contains didn't match what we expected), we leave the function without freeing the graph struct that caused the failure, leaking it. We can fix it by calling free_graph_commit(). Signed-off-by: Jeff King Signed-off-by: Junio C Hamano --- diff --git a/commit-graph.c b/commit-graph.c index 2c72a554c2..4aa2f294f1 100644 --- a/commit-graph.c +++ b/commit-graph.c @@ -566,6 +566,8 @@ static struct commit_graph *load_commit_graph_chain(struct repository *r, if (add_graph_to_chain(g, graph_chain, oids, i)) { graph_chain = g; valid = 1; + } else { + free_commit_graph(g); } break;