summaryrefslogtreecommitdiffstats
path: root/revision.c
diff options
context:
space:
mode:
authorÆvar Arnfjörð Bjarmason <avarab@gmail.com>2022-04-13 22:01:48 +0200
committerJunio C Hamano <gitster@pobox.com>2022-04-14 08:56:09 +0200
commite75d2f7f73420884c50613a8242812b55ad2a8fa (patch)
treefe61a8999ccca411e2f50f03750383dace090948 /revision.c
parentrevisions API: have release_revisions() release "cmdline" (diff)
downloadgit-e75d2f7f73420884c50613a8242812b55ad2a8fa.tar.xz
git-e75d2f7f73420884c50613a8242812b55ad2a8fa.zip
revisions API: have release_revisions() release "filter"
Extend the the release_revisions() function so that it frees the "filter" in the "struct rev_info". This in combination with a preceding change to free "cmdline" means that we can mark another set of tests as passing under "TEST_PASSES_SANITIZE_LEAK=true". The "filter" member was added recently in ffaa137f646 (revision: put object filter into struct rev_info, 2022-03-09), and this fixes leaks intruded in the subsequent leak 7940941de1f (pack-objects: use rev.filter when possible, 2022-03-09) and 105c6f14ad3 (bundle: parse filter capability, 2022-03-09). The "builtin/pack-objects.c" leak in 7940941de1f was effectively with us already, but the variable was referred to by a "static" file-scoped variable. The "bundle.c " leak in 105c6f14ad3 was newly introduced with the new "filter" feature for bundles. The "t5600-clone-fail-cleanup.sh" change here to add "TEST_PASSES_SANITIZE_LEAK=true" is one of the cases where run-command.c in not carrying the abort() exit code upwards would have had that test passing before, but now it *actually* passes[1]. We should fix the lack of 1=1 mapping of SANITIZE=leak testing to actual leaks some other time, but it's an existing edge case, let's just mark the really-passing test as passing for now. 1. https://lore.kernel.org/git/220303.86fsnz5o9w.gmgdl@evledraar.gmail.com/ Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'revision.c')
-rw-r--r--revision.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/revision.c b/revision.c
index de4076e77d..a9d6d3a8dc 100644
--- a/revision.c
+++ b/revision.c
@@ -2948,6 +2948,7 @@ void release_revisions(struct rev_info *revs)
free_commit_list(revs->commits);
object_array_clear(&revs->pending);
release_revisions_cmdline(&revs->cmdline);
+ list_objects_filter_release(&revs->filter);
release_revisions_mailmap(revs->mailmap);
}