diff mbox

[U-Boot] Revert "hush: fix segfault on syntax error"

Message ID 1416607522-5161-1-git-send-email-rabin@rab.in
State Accepted
Delegated to: Tom Rini
Headers show

Commit Message

Rabin Vincent Nov. 21, 2014, 10:05 p.m. UTC
128059b92 ("hush: fix segfault on syntax error") attempted to fix a
segfault on syntax errors, but it broke Ctrl-C handling, and the
assumption that it made, that rcode could not be -1, is incorrect.
Revert this change.

Reported-by: Stephen Warren <swarren@wwwdotorg.org>
Reported-by: Przemyslaw Marczak <p.marczak@samsung.com>
Signed-off-by: Rabin Vincent <rabin@rab.in>
---
 common/cli_hush.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Tom Rini Nov. 24, 2014, 10:13 p.m. UTC | #1
On Fri, Nov 21, 2014 at 11:05:22PM +0100, Rabin Vincent wrote:

> 128059b92 ("hush: fix segfault on syntax error") attempted to fix a
> segfault on syntax errors, but it broke Ctrl-C handling, and the
> assumption that it made, that rcode could not be -1, is incorrect.
> Revert this change.
> 
> Reported-by: Stephen Warren <swarren@wwwdotorg.org>
> Reported-by: Przemyslaw Marczak <p.marczak@samsung.com>
> Signed-off-by: Rabin Vincent <rabin@rab.in>

Applied to u-boot/master, thanks!
diff mbox

Patch

diff --git a/common/cli_hush.c b/common/cli_hush.c
index d643912..296542f 100644
--- a/common/cli_hush.c
+++ b/common/cli_hush.c
@@ -3217,7 +3217,7 @@  static int parse_stream_outer(struct in_str *inp, int flag)
 		}
 		b_free(&temp);
 	/* loop on syntax errors, return on EOF */
-	} while (rcode != 1 && !(flag & FLAG_EXIT_FROM_LOOP) &&
+	} while (rcode != -1 && !(flag & FLAG_EXIT_FROM_LOOP) &&
 		(inp->peek != static_peek || b_peek(inp)));
 #ifndef __U_BOOT__
 	return 0;