From: Jeff King Date: Fri, 02 Apr 2010 00:04:14 GMT Subject: [PATCH 2/7] fix textconv leak in emit_rewrite_diff Message-ID: <20100402000414.GB16462@coredump.intra.peff.net> In-Reply-To: <20100402000159.GA15101@coredump.intra.peff.net> We correctly free() for the normal diff case, but leak for rewrite diffs. Signed-off-by: Jeff King --- 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