]> git.ipfire.org Git - thirdparty/git.git/commitdiff
t/helper: fix leaking multi-pack-indices in "read-midx"
authorPatrick Steinhardt <ps@pks.im>
Thu, 22 Aug 2024 09:17:38 +0000 (11:17 +0200)
committerJunio C Hamano <gitster@pobox.com>
Thu, 22 Aug 2024 16:18:05 +0000 (09:18 -0700)
Several of the subcommands of `test-helper read-midx` do not close the
MIDX that they have opened, leading to memory leaks. Fix those.

Signed-off-by: Patrick Steinhardt <ps@pks.im>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
t/helper/test-read-midx.c
t/t5319-multi-pack-index.sh
t/t7704-repack-cruft.sh

index 69757e94fc277d5194fbb29d950689d3cfd7d1a4..438fb9fc6197fc465f79d9a65b719ae315fed373 100644 (file)
@@ -86,6 +86,8 @@ static int read_midx_checksum(const char *object_dir)
        if (!m)
                return 1;
        printf("%s\n", hash_to_hex(get_midx_checksum(m)));
+
+       close_midx(m);
        return 0;
 }
 
@@ -102,10 +104,12 @@ static int read_midx_preferred_pack(const char *object_dir)
 
        if (midx_preferred_pack(midx, &preferred_pack) < 0) {
                warning(_("could not determine MIDX preferred pack"));
+               close_midx(midx);
                return 1;
        }
 
        printf("%s\n", midx->pack_names[preferred_pack]);
+       close_midx(midx);
        return 0;
 }
 
@@ -122,8 +126,10 @@ static int read_midx_bitmapped_packs(const char *object_dir)
                return 1;
 
        for (i = 0; i < midx->num_packs + midx->num_packs_in_base; i++) {
-               if (nth_bitmapped_pack(the_repository, midx, &pack, i) < 0)
+               if (nth_bitmapped_pack(the_repository, midx, &pack, i) < 0) {
+                       close_midx(midx);
                        return 1;
+               }
 
                printf("%s\n", pack_basename(pack.p));
                printf("  bitmap_pos: %"PRIuMAX"\n", (uintmax_t)pack.bitmap_pos);
index ce1b58c7323de5bf52cffcfdc46e64fa990da8e8..fbbc218d04af4a56fcb66cb43a8ff12eeb55c6ce 100755 (executable)
@@ -1,6 +1,8 @@
 #!/bin/sh
 
 test_description='multi-pack-indexes'
+
+TEST_PASSES_SANITIZE_LEAK=true
 . ./test-lib.sh
 . "$TEST_DIRECTORY"/lib-chunk.sh
 . "$TEST_DIRECTORY"/lib-midx.sh
index 959e6e2648897e05d8a1993338ea63e109e3b923..5db9f4e10f75e92094c9a58a61728dc868e80479 100755 (executable)
@@ -2,6 +2,7 @@
 
 test_description='git repack works correctly'
 
+TEST_PASSES_SANITIZE_LEAK=true
 . ./test-lib.sh
 
 objdir=.git/objects