diff options
author | Pavel Machek <pavel@denx.de> | 2014-07-09 22:42:57 +0200 |
---|---|---|
committer | Tom Rini <trini@ti.com> | 2014-07-22 07:44:25 -0400 |
commit | 949bbd7c867026e7f8ecb71abe6ebd113eda84d2 (patch) | |
tree | fa5eb57a7e130854a21c8aa1875f52b6a20c0d90 | |
parent | 6b367467f154f03e154ade92125ae003083aaf7f (diff) | |
download | u-boot-imx-949bbd7c867026e7f8ecb71abe6ebd113eda84d2.zip u-boot-imx-949bbd7c867026e7f8ecb71abe6ebd113eda84d2.tar.gz u-boot-imx-949bbd7c867026e7f8ecb71abe6ebd113eda84d2.tar.bz2 |
catch wrong load address passed to fatload / ext2load
If filename is passed instead of address to ext2load or fatload,
u-boot silently accepts that, and uses 0 for load address and default
filename from environment. That is confusing, display help instead.
Signed-off-by: Pavel Machek <pavel@denx.de>
-rw-r--r-- | fs/fs.c | 5 |
1 files changed, 4 insertions, 1 deletions
@@ -276,6 +276,7 @@ int do_load(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[], unsigned long pos; int len_read; unsigned long time; + char *ep; if (argc < 2) return CMD_RET_USAGE; @@ -286,7 +287,9 @@ int do_load(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[], return 1; if (argc >= 4) { - addr = simple_strtoul(argv[3], NULL, 16); + addr = simple_strtoul(argv[3], &ep, 16); + if (ep == argv[3] || *ep != '\0') + return CMD_RET_USAGE; } else { addr_str = getenv("loadaddr"); if (addr_str != NULL) |