diff --git a/pretty.c b/pretty.c index 986e114e0c99c2a899831b7196d961f1ce525a48..8b1ea9ffad2a0b5c5cb5c15cc5057a8a7132da07 100644 --- a/pretty.c +++ b/pretty.c @@ -439,12 +439,14 @@ static char *get_header(const struct commit *commit, const char *key) int key_len = strlen(key); const char *line = commit->buffer; - for (;;) { + while (line) { const char *eol = strchr(line, '\n'), *next; if (line == eol) return NULL; if (!eol) { + warning("malformed commit (header is missing newline): %s", + sha1_to_hex(commit->object.sha1)); eol = line + strlen(line); next = NULL; } else @@ -456,6 +458,7 @@ static char *get_header(const struct commit *commit, const char *key) } line = next; } + return NULL; } static char *replace_encoding_header(char *buf, const char *encoding)