[PATCH] Fix an off by one bug in pretty.c

Subsystems: the rest

DORMANTno replies

2 messages, 1 author, 2016-06-15 · open the first message on its own page

[PATCH] Fix an off by one bug in pretty.c

From: Marco Costalba <hidden>
Date: 2016-06-15 22:44:02

In case author email is <> then we have the following
bug in function 'format_person_part'

/* parse name */
for (end = 0; end < len && msg[end] != '<'; end++)
       ; /* do nothing */

start = end + 1; /* now start points to '>' */

-- cut ---

/* parse email */
for (end = start + 1; end < len && msg[end] != '>'; end++)

And here 'end' is initialized with 'start + 1'
instead of 'start'. This turns out in empty commit
date when git log is used with --pretty=format option.

Signed-off-by: Marco Costalba <redacted>
---
 pretty.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/pretty.c b/pretty.c
index 5b1078b..0b2f187 100644
--- a/pretty.c
+++ b/pretty.c
@@ -292,7 +292,7 @@ static void format_person_part
 	/* parse name */
 	for (end = 0; end < len && msg[end] != '<'; end++)
 		; /* do nothing */
-	start = end + 1;
+	start = end;
 	while (end > 0 && isspace(msg[end - 1]))
 		end--;
 	if (part == 'n') {	/* name */
-- 
1.5.4.rc2.38.gd6da3-dirty

Re: [PATCH] Fix an off by one bug in pretty.c

From: Marco Costalba <hidden>
Date: 2016-06-15 22:44:02

On Jan 5, 2008 11:55 PM, Marco Costalba [off-list ref] wrote:
In case author email is <> then we have the following
bug in function 'format_person_part'
WARNING: Please discard previous patch!

Due to an error I sent the wrong one, the following is the correct one:

------------------- CUT ----------------------------------------------------


In case author email is <> then we have the following
bug in function 'format_person_part'

/* parse name */
for (end = 0; end < len && msg[end] != '<'; end++)
      ; /* do nothing */

start = end + 1; /* now start points to '>' */

-- cut ---

/* parse email */
for (end = start + 1; end < len && msg[end] != '>'; end++)

And here 'end' is initialized with 'start + 1'
instead of 'start'. This turns out in empty commit
date when git log is used with --pretty=format option.

Signed-off-by: Marco Costalba <redacted>
---

feba083ccd11374560e34a755ca03f07e7d45533
 pretty.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/pretty.c b/pretty.c
index 5b1078b..3ce5e6f 100644
--- a/pretty.c
+++ b/pretty.c
@@ -304,7 +304,7 @@ static void format_person_part
 		return;

 	/* parse email */
-	for (end = start + 1; end < len && msg[end] != '>'; end++)
+	for (end = start; end < len && msg[end] != '>'; end++)
 		; /* do nothing */

 	if (end >= len)
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help