diff options
author | René Scharfe <l.s.r@web.de> | 2022-09-07 14:37:02 +0300 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2022-09-07 22:34:03 +0300 |
commit | 07a6f94a6d06947d325881460a3798dda0a98cf8 (patch) | |
tree | 5ae17740fcd85390690150413862b4c252e436ca /diff-no-index.c | |
parent | fffe7d81a402ced9ede961f55cfc617fe08e71ef (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.c | 5 |
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; } |