We correctly free() for the normal diff case, but leak for rewrite diffs. Signed-off-by: Jeff King <peff@xxxxxxxx> --- I suppose we never noticed this because rewrite diffs and textconv are both uncommonly used codepaths, and leaking a little bit of textconv probably just isn't that big a deal in a short-running process. But stopping leaks is good. diff.c | 4 ++++ 1 files changed, 4 insertions(+), 0 deletions(-) diff --git a/diff.c b/diff.c index 2daa732..db2cd5d 100644 --- a/diff.c +++ b/diff.c @@ -550,6 +550,10 @@ static void emit_rewrite_diff(const char *name_a, emit_rewrite_lines(&ecbdata, '-', data_one, size_one); if (lc_b) emit_rewrite_lines(&ecbdata, '+', data_two, size_two); + if (textconv_one) + free(data_one); + if (textconv_two) + free(data_two); } struct diff_words_buffer { -- 1.7.0.4.299.gba9d4 -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html