]> git.ipfire.org Git - thirdparty/git.git/commitdiff
midx.c: clean up chunkfile after reading the MIDX
authorTaylor Blau <me@ttaylorr.com>
Thu, 21 Oct 2021 03:39:47 +0000 (23:39 -0400)
committerJunio C Hamano <gitster@pobox.com>
Thu, 21 Oct 2021 16:07:55 +0000 (09:07 -0700)
In order to read the contents of a MIDX, we initialize a chunkfile
structure which can read the table of contents and assign pointers into
different sections of the file for us.

We do call free(), since the chunkfile struct is heap allocated, but not
the more appropriate free_chunkfile(), which also frees memory that the
structure itself owns.

Call that instead to avoid leaking memory in this function.

Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
Signed-off-by: Taylor Blau <me@ttaylorr.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
midx.c

diff --git a/midx.c b/midx.c
index 7e06e8597561fe1341a53983a36b4a8a0eafe378..7a8b027be04672ff1aa33228cc06c9ea4e6ec559 100644 (file)
--- a/midx.c
+++ b/midx.c
@@ -179,12 +179,13 @@ struct multi_pack_index *load_multi_pack_index(const char *object_dir, int local
        trace2_data_intmax("midx", the_repository, "load/num_packs", m->num_packs);
        trace2_data_intmax("midx", the_repository, "load/num_objects", m->num_objects);
 
+       free_chunkfile(cf);
        return m;
 
 cleanup_fail:
        free(m);
        free(midx_name);
-       free(cf);
+       free_chunkfile(cf);
        if (midx_map)
                munmap(midx_map, midx_size);
        if (0 <= fd)