]> git.ipfire.org Git - thirdparty/git.git/commitdiff
diff-no-index: release prefixed filenames
authorRené Scharfe <l.s.r@web.de>
Wed, 7 Sep 2022 11:37:02 +0000 (13:37 +0200)
committerJunio C Hamano <gitster@pobox.com>
Wed, 7 Sep 2022 19:34:03 +0000 (12:34 -0700)
Callers of prefix_filename() are responsible for freeing its result.
Remember the returned strings and release them to appease leak checkers.

Signed-off-by: René Scharfe <l.s.r@web.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
diff-no-index.c

index a3683d8a04f3946bd54b6e9849374e310b01cef7..a18f6c3c6306b74f3197a1049b9f5973733c942f 100644 (file)
@@ -245,6 +245,7 @@ int diff_no_index(struct rev_info *revs,
        int i, no_index;
        int ret = 1;
        const char *paths[2];
+       char *to_free[ARRAY_SIZE(paths)] = { 0 };
        struct strbuf replacement = STRBUF_INIT;
        const char *prefix = revs->prefix;
        struct option no_index_options[] = {
@@ -274,7 +275,7 @@ int diff_no_index(struct rev_info *revs,
                         */
                        p = file_from_standard_input;
                else if (prefix)
-                       p = prefix_filename(prefix, p);
+                       p = to_free[i] = prefix_filename(prefix, p);
                paths[i] = p;
        }
 
@@ -308,6 +309,8 @@ int diff_no_index(struct rev_info *revs,
        ret = diff_result_code(&revs->diffopt, 0);
 
 out:
+       for (i = 0; i < ARRAY_SIZE(to_free); i++)
+               free(to_free[i]);
        strbuf_release(&replacement);
        return ret;
 }