From: Junio C Hamano Date: Mon, 1 Jan 2007 02:18:23 +0000 (-0800) Subject: i18n: do not leak 'encoding' header even when we cheat the conversion. X-Git-Tag: v1.5.0-rc1~123 X-Git-Url: http://git.tremily.us/?a=commitdiff_plain;h=e90068a9046ccaf0bed82fd180b4748edbd5659a;p=git.git i18n: do not leak 'encoding' header even when we cheat the conversion. We special case the case where encoding recorded in the commit and the output encoding are the same and do not call iconv(). But we should drop 'encoding' header for this case as well for consistency. Signed-off-by: Junio C Hamano --- diff --git a/commit.c b/commit.c index afdf27eec..544e42629 100644 --- a/commit.c +++ b/commit.c @@ -679,11 +679,13 @@ static char *logmsg_reencode(const struct commit *commit) else if (!*output_encoding) return NULL; encoding = get_header(commit, "encoding"); - if (!encoding || !strcmp(encoding, output_encoding)) { - free(encoding); + if (!encoding) return NULL; - } - out = reencode_string(commit->buffer, output_encoding, encoding); + if (!strcmp(encoding, output_encoding)) + out = strdup(commit->buffer); + else + out = reencode_string(commit->buffer, + output_encoding, encoding); if (out) out = replace_encoding_header(out, output_encoding);