Thread (14 messages) flat view 14 messages, 4 authors, 2016-06-15

Re: Serious bug with pretty format strings & empty bodies?

From: Jonathan del Strother <hidden>
Date: 2016-06-15 22:44:00

On Dec 20, 2007 12:20 PM, René Scharfe [off-list ref] wrote:
quoted hunk ↗ jump to hunk
Jonathan del Strother schrieb:
quoted
On Dec 19, 2007 11:23 PM, René Scharfe [off-list ref] wrote:
quoted
Just a shot in the dark: does this patch on top of master make a difference?
No luck with that, I'm afraid.
And how is this one?

The first chunk is the same as in the last try -- it guards against commit
messages ending with a NUL without a prior \n _and_ being followed by a \n
(in memory which shouldn't be accessed by us at all as it doesn't belong to
the commit message).  I guess that's quite rare.

The second chunk keeps the body offset from being incremented by the for
loop if we've already found a terminating NUL.
diff --git a/pretty.c b/pretty.c
index 9db75b4..5b1078b 100644
--- a/pretty.c
+++ b/pretty.c
@@ -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;
Winnar!

Yep, that seems to have fixed things.  Wonder how I managed to get the
null into the commit message...
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help