Przeglądaj źródła

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

Wolfgang Denk 19 lat temu
rodzic
commit
1264b4050c
2 zmienionych plików z 9 dodań i 3 usunięć
  1. 3 0
      CHANGELOG
  2. 6 3
      common/main.c

+ 3 - 0
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

+ 6 - 3
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 */