diff options
author | Wolfgang Denk <wd@pollux.denx.de> | 2006-03-12 02:20:55 +0100 |
---|---|---|
committer | Wolfgang Denk <wd@pollux.denx.de> | 2006-03-12 02:20:55 +0100 |
commit | 1264b4050c6f635cc237b5821f924817457ce50c (patch) | |
tree | da63ef53f8f1b1c823fef6f4c595400bc12ede84 /common | |
parent | 6cb142fa3b732a2cea257ca39ef4a7dbe81a32e1 (diff) |
Avoid dereferencing NULL in find_cmd() if no valid commands were found
Patch by Andrew Dyer, 13 Jun 2005
Diffstat (limited to 'common')
-rw-r--r-- | common/main.c | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/common/main.c b/common/main.c index f042f3a636f..445cb18491b 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 */ |