[U-Boot] [PATCH] Fix handling of some broken test expressions

Domenico Andreoli cavokz at gmail.com
Thu Nov 15 15:36:09 CET 2012


Observed incorrect bahavior (some debug traces are enabled):

U-Boot# test = yes
test(3): '=' 'yes': returns 0
U-Boot# test yes =
test(3): 'yes' '=': returns 0

This means that any "if test" with such broken expressions (maybe due to
an empty variable) in incorrectly evaluated as true.

Signed-off-by: Domenico Andreoli <cavokz at gmail.com>
---
 common/cmd_test.c |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/common/cmd_test.c b/common/cmd_test.c
index d4ec186..dedda30 100644
--- a/common/cmd_test.c
+++ b/common/cmd_test.c
@@ -64,7 +64,7 @@ static int do_test(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
 			adv = 3;
 
 		if (left < adv) {
-			expr = 1;
+			expr = 0;
 			break;
 		}
 
-- 
1.7.10.4


More information about the U-Boot mailing list