Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.kernel.org/pub/scm/git/git.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRené Scharfe <l.s.r@web.de>2022-09-07 14:37:02 +0300
committerJunio C Hamano <gitster@pobox.com>2022-09-07 22:34:03 +0300
commit07a6f94a6d06947d325881460a3798dda0a98cf8 (patch)
tree5ae17740fcd85390690150413862b4c252e436ca /diff-no-index.c
parentfffe7d81a402ced9ede961f55cfc617fe08e71ef (diff)
diff-no-index: release prefixed filenames
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>
Diffstat (limited to 'diff-no-index.c')
-rw-r--r--diff-no-index.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/diff-no-index.c b/diff-no-index.c
index a3683d8a04..a18f6c3c63 100644
--- a/diff-no-index.c
+++ b/diff-no-index.c
@@ -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;
}