From b76c056b95ccb15ae3b0723da983914de88b4bae Mon Sep 17 00:00:00 2001 From: Jeff King Date: Thu, 1 Apr 2010 20:04:14 -0400 Subject: fix textconv leak in emit_rewrite_diff We correctly free() for the normal diff case, but leak for rewrite diffs. Signed-off-by: Jeff King Signed-off-by: Junio C Hamano --- diff.c | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'diff.c') diff --git a/diff.c b/diff.c index 2daa732a36..db2cd5d35f 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 { -- cgit 1.2.3-korg From aed6ca52e73a35d0aac9aba7d631e09983e46a6f Mon Sep 17 00:00:00 2001 From: Junio C Hamano Date: Thu, 8 Apr 2010 23:30:49 -0700 Subject: diff.c: work around pointer constness warnings The textconv leak fix introduced two invocations of free() to release memory pointed by "const char *", which get annoying compiler warning. --- diff.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'diff.c') diff --git a/diff.c b/diff.c index db2cd5d35f..c23093d6c0 100644 --- a/diff.c +++ b/diff.c @@ -551,9 +551,9 @@ static void emit_rewrite_diff(const char *name_a, if (lc_b) emit_rewrite_lines(&ecbdata, '+', data_two, size_two); if (textconv_one) - free(data_one); + free((char *)data_one); if (textconv_two) - free(data_two); + free((char *)data_two); } struct diff_words_buffer { -- cgit 1.2.3-korg