From: Wolfgang Denk <wd@pollux.denx.de>
Date: Sun, 12 Mar 2006 01:20:55 +0000 (+0100)
Subject: Avoid dereferencing NULL in find_cmd() if no valid commands were found
X-Git-Tag: v2025.01-rc5-pxa1908~23065^2~32
X-Git-Url: http://git.dujemihanovic.xyz/img/static/html/index.html?a=commitdiff_plain;h=1264b4050c6f635cc237b5821f924817457ce50c;p=u-boot.git

Avoid dereferencing NULL in find_cmd() if no valid commands were found
Patch by Andrew Dyer, 13 Jun 2005
---

diff --git a/CHANGELOG b/CHANGELOG
index 20e875aabf..2348df63c0 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -2,6 +2,9 @@
 Changes since U-Boot 1.1.4:
 ======================================================================
 
+* Avoid dereferencing NULL in find_cmd() if no valid commands were found
+  Patch by Andrew Dyer, 13 Jun 2005
+
 * Add ADI Blackfin support
   - add support for Analog Devices Blackfin BF533 CPU
   - add support for the ADI BF533 Stamp uClinux board
diff --git a/common/main.c b/common/main.c
index f042f3a636..445cb18491 100644
--- a/common/main.c
+++ b/common/main.c
@@ -919,7 +919,10 @@ int run_command (const char *cmd, int flag)
 		process_macros (token, finaltoken);
 
 		/* Extract arguments */
-		argc = parse_line (finaltoken, argv);
+		if ((argc = parse_line (finaltoken, argv)) == 0) {
+			rc = -1;	/* no command at all */
+			continue;
+		}
 
 		/* Look up command in command table */
 		if ((cmdtp = find_cmd(argv[0])) == NULL) {
@@ -945,9 +948,9 @@ int run_command (const char *cmd, int flag)
 				puts ("'bootd' recursion detected\n");
 				rc = -1;
 				continue;
-			}
-			else
+			} else {
 				flag |= CMD_FLAG_BOOTD;
+			}
 		}
 #endif	/* CFG_CMD_BOOTD */