diff options
author | René Scharfe <rene.scharfe@lsrfire.ath.cx> | 2007-12-20 13:20:15 +0100 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2007-12-26 17:52:32 -0800 |
commit | 7ed0988adc0a3cb3f103c105af387e3ac48eea61 (patch) | |
tree | f917862a230f7c19a470e6988e332129f3bd0fcd | |
parent | Don't dereference NULL upon lookup failure. (diff) | |
download | tgif-7ed0988adc0a3cb3f103c105af387e3ac48eea61.tar.xz |
Make "--pretty=format" parser a bit more careful.
When a commit message that does not have a terminating LF is
read in and the memory that was allocated to read it happens to
have a LF immediately after that, the code was not careful and
went past the terminating NUL.
Signed-off-by: Junio C Hamano <gitster@pobox.com>
-rw-r--r-- | pretty.c | 4 |
1 files changed, 3 insertions, 1 deletions
@@ -412,7 +412,7 @@ static void parse_commit_header(struct format_commit_context *context) if (i == eol) { state++; /* strip empty lines */ - while (msg[eol + 1] == '\n') + while (msg[eol] == '\n' && msg[eol + 1] == '\n') eol++; } else if (!prefixcmp(msg + i, "author ")) { context->author.off = i + 7; @@ -425,6 +425,8 @@ static void parse_commit_header(struct format_commit_context *context) context->encoding.len = eol - i - 9; } i = eol; + if (!msg[i]) + break; } context->body_off = i; context->commit_header_parsed = 1; |