aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPatrick Steinhardt <ps@pks.im>2024-09-05 12:09:41 +0200
committerJunio C Hamano <gitster@pobox.com>2024-09-05 08:49:13 -0700
commit46f6ca2a68e02dd68132ed0b64cd55a8b6569e29 (patch)
treedfd6b00be5ebb8928da7ca9684b9962d029dad70
parentmerge-ort: fix two leaks when handling directory rename modifications (diff)
downloadgit-46f6ca2a68e02dd68132ed0b64cd55a8b6569e29.tar.gz
git-46f6ca2a68e02dd68132ed0b64cd55a8b6569e29.zip
builtin/repack: fix leaking keep-pack list
The list of packs to keep is populated via a command line option but never free'd. Plug this memory leak. Signed-off-by: Patrick Steinhardt <ps@pks.im> Signed-off-by: Junio C Hamano <gitster@pobox.com>
-rw-r--r--builtin/repack.c1
-rwxr-xr-xt/t6500-gc.sh1
-rwxr-xr-xt/t7703-repack-geometric.sh1
3 files changed, 3 insertions, 0 deletions
diff --git a/builtin/repack.c b/builtin/repack.c
index 2b9bf0318a..367e970dcf 100644
--- a/builtin/repack.c
+++ b/builtin/repack.c
@@ -1525,6 +1525,7 @@ int cmd_repack(int argc, const char **argv, const char *prefix)
}
cleanup:
+ string_list_clear(&keep_pack_list, 0);
string_list_clear(&names, 1);
existing_packs_release(&existing);
free_pack_geometry(&geometry);
diff --git a/t/t6500-gc.sh b/t/t6500-gc.sh
index 1b5909d1b7..58654b3437 100755
--- a/t/t6500-gc.sh
+++ b/t/t6500-gc.sh
@@ -3,6 +3,7 @@
test_description='basic git gc tests
'
+TEST_PASSES_SANITIZE_LEAK=true
. ./test-lib.sh
. "$TEST_DIRECTORY"/lib-terminal.sh
diff --git a/t/t7703-repack-geometric.sh b/t/t7703-repack-geometric.sh
index 9fc1626fbf..8877aea98b 100755
--- a/t/t7703-repack-geometric.sh
+++ b/t/t7703-repack-geometric.sh
@@ -2,6 +2,7 @@
test_description='git repack --geometric works correctly'
+TEST_PASSES_SANITIZE_LEAK=true
. ./test-lib.sh
GIT_TEST_MULTI_PACK_INDEX=0