[U-Boot] [PATCH] catch wrong load address passed to fatload / ext2load

Pavel Machek pavel at denx.de
Thu Jul 10 01:12:03 CEST 2014


On Thu 2014-07-10 01:08:28, Wolfgang Denk wrote:
> Dear Pavel Machek,
> 
> In message <20140709204257.GA28671 at amd.pavel.ucw.cz> you wrote:
> > 
> > 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 at denx.de>
> > 
> > diff --git a/fs/fs.c b/fs/fs.c
> > index 79d432d..ea15c5f 100644
> > --- a/fs/fs.c
> > +++ b/fs/fs.c
> > @@ -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;
> 
> What happens in case of filenames that look like numbers, say "0"?
> It may be silly to use such, but it should not be impossible to do
> so.

It should be ok.

This catches error when someone passes non-number as a load
address. As long as you pass load address, nothing changes.

IOW  

fatload mmc 0:1 0 filename
# always worked/keeps working
fatload mmc 0:1 filename
# before my patch, this would try to parse filename as number, fail,
# and use default load address adn default filename. Not what user
# wanted.
fatload mmc 0:1 0 0
# Load filename "0" at address 0. Worked before, will work now.

Hope this helps,
									Pavel
-- 
(english) http://www.livejournal.com/~pavelmachek
(cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html


More information about the U-Boot mailing list