]> git.ipfire.org Git - thirdparty/git.git/commitdiff
read_index_from(): avoid memory leak
authorJohannes Schindelin <johannes.schindelin@gmx.de>
Wed, 15 Jun 2022 23:35:42 +0000 (23:35 +0000)
committerJunio C Hamano <gitster@pobox.com>
Thu, 16 Jun 2022 20:22:03 +0000 (13:22 -0700)
In 998330ac2e7c (read-cache: look for shared index files next to the
index, too, 2021-08-26), we added code that allocates memory to store
the base path of a shared index, but we never released that memory.

Reported by Coverity.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
read-cache.c

index e61af3a3d4d044f208636e77d451450bef4a3fe6..76f372ff9175eaf3a4a47cc97fb8b475393fbc64 100644 (file)
@@ -2473,15 +2473,15 @@ int read_index_from(struct index_state *istate, const char *path,
                                   the_repository, "%s", base_path);
        if (!ret) {
                char *path_copy = xstrdup(path);
-               const char *base_path2 = xstrfmt("%s/sharedindex.%s",
-                                                dirname(path_copy),
-                                                base_oid_hex);
+               char *base_path2 = xstrfmt("%s/sharedindex.%s",
+                                          dirname(path_copy), base_oid_hex);
                free(path_copy);
                trace2_region_enter_printf("index", "shared/do_read_index",
                                           the_repository, "%s", base_path2);
                ret = do_read_index(split_index->base, base_path2, 1);
                trace2_region_leave_printf("index", "shared/do_read_index",
                                           the_repository, "%s", base_path2);
+               free(base_path2);
        }
        if (!oideq(&split_index->base_oid, &split_index->base->oid))
                die(_("broken index, expect %s in %s, got %s"),