[PATCH 2/7] fix textconv leak in emit_rewrite_diff
- From
Jeff King <peff@peff.net>
- Date
- Apr 2, 2010, 00:04 UTC
- 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 <peff@peff.net> --- 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