Skip to content

Commit 07a6f94

Browse files
rscharfegitster
authored andcommitted
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 <[email protected]> Signed-off-by: Junio C Hamano <[email protected]>
1 parent fffe7d8 commit 07a6f94

File tree

1 file changed

+4
-1
lines changed

1 file changed

+4
-1
lines changed

diff-no-index.c

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -245,6 +245,7 @@ int diff_no_index(struct rev_info *revs,
245245
int i, no_index;
246246
int ret = 1;
247247
const char *paths[2];
248+
char *to_free[ARRAY_SIZE(paths)] = { 0 };
248249
struct strbuf replacement = STRBUF_INIT;
249250
const char *prefix = revs->prefix;
250251
struct option no_index_options[] = {
@@ -274,7 +275,7 @@ int diff_no_index(struct rev_info *revs,
274275
*/
275276
p = file_from_standard_input;
276277
else if (prefix)
277-
p = prefix_filename(prefix, p);
278+
p = to_free[i] = prefix_filename(prefix, p);
278279
paths[i] = p;
279280
}
280281

@@ -308,6 +309,8 @@ int diff_no_index(struct rev_info *revs,
308309
ret = diff_result_code(&revs->diffopt, 0);
309310

310311
out:
312+
for (i = 0; i < ARRAY_SIZE(to_free); i++)
313+
free(to_free[i]);
311314
strbuf_release(&replacement);
312315
return ret;
313316
}

0 commit comments

Comments
 (0)