1
0
Fork 0
mirror of https://github.com/git/git.git synced 2024-06-11 02:16:16 +02:00

commit-graph: clear oidset after finishing write

In graph_write() we store commits in an oidset, but never clean it up,
leaking the contents. We should clear it in the cleanup section.

The oidset comes from 6830c36077 (commit-graph.h: replace 'commit_hex'
with 'commits', 2020-04-13), but it was just replacing a string_list
that was also leaked. Curiously, we fixed the leak of some adjacent
variables in commit fa8953cb40 (builtin/commit-graph.c: extract
'read_one_commit()', 2020-05-18), but the oidset wasn't included for
some reason.

In combination with the preceding commits, this lets us mark t5324 as
leak-free.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Jeff King 2023-10-03 16:31:30 -04:00 committed by Junio C Hamano
parent d9c84c6d67
commit da09e7af68
2 changed files with 3 additions and 0 deletions

View File

@ -311,6 +311,7 @@ static int graph_write(int argc, const char **argv, const char *prefix)
FREE_AND_NULL(options);
string_list_clear(&pack_indexes, 0);
strbuf_release(&buf);
oidset_clear(&commits);
return result;
}

View File

@ -1,6 +1,8 @@
#!/bin/sh
test_description='split commit graph'
TEST_PASSES_SANITIZE_LEAK=true
. ./test-lib.sh
GIT_TEST_COMMIT_GRAPH=0