mirror of
https://github.com/git/git.git
synced 2024-11-27 12:03:55 +08:00
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>
This commit is contained in:
parent
fffe7d81a4
commit
07a6f94a6d
@ -245,6 +245,7 @@ int diff_no_index(struct rev_info *revs,
|
|||||||
int i, no_index;
|
int i, no_index;
|
||||||
int ret = 1;
|
int ret = 1;
|
||||||
const char *paths[2];
|
const char *paths[2];
|
||||||
|
char *to_free[ARRAY_SIZE(paths)] = { 0 };
|
||||||
struct strbuf replacement = STRBUF_INIT;
|
struct strbuf replacement = STRBUF_INIT;
|
||||||
const char *prefix = revs->prefix;
|
const char *prefix = revs->prefix;
|
||||||
struct option no_index_options[] = {
|
struct option no_index_options[] = {
|
||||||
@ -274,7 +275,7 @@ int diff_no_index(struct rev_info *revs,
|
|||||||
*/
|
*/
|
||||||
p = file_from_standard_input;
|
p = file_from_standard_input;
|
||||||
else if (prefix)
|
else if (prefix)
|
||||||
p = prefix_filename(prefix, p);
|
p = to_free[i] = prefix_filename(prefix, p);
|
||||||
paths[i] = p;
|
paths[i] = p;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -308,6 +309,8 @@ int diff_no_index(struct rev_info *revs,
|
|||||||
ret = diff_result_code(&revs->diffopt, 0);
|
ret = diff_result_code(&revs->diffopt, 0);
|
||||||
|
|
||||||
out:
|
out:
|
||||||
|
for (i = 0; i < ARRAY_SIZE(to_free); i++)
|
||||||
|
free(to_free[i]);
|
||||||
strbuf_release(&replacement);
|
strbuf_release(&replacement);
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user