[U-Boot] fs/fs.c - error handling needed?

Tom Rini
2013-10-07T14:23:25Z

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

On 10/07/2013 09:55 AM, Wolfgang Denk wrote:
> Dear Tom,
>
> In message <20131007121252.GS15917@bill-the-cat> you wrote:
>>
>>> 331 filename = argv[3]; 332 addr =
>>> simple_strtoul(argv[4], NULL, cmdline_base); 333 bytes
>>> = simple_strtoul(argv[5], NULL, cmdline_base); 334 if
>>> (argc >= 7) 335 pos = simple_strtoul(argv[6],
>>> NULL, cmdline_base); 336 else 337 pos =
>>> 0;
>>>
>>>
>>> Should we not perform at least minimal error checking, i. e.
>>> verify that no garbage arguments have been passed to that
>>> function?
>>
>> Yes, we ought to. If you don't pass fatwrite the right number
>> of arguments we get data aborts, for example.
>
> Well, this is not a problem here, in do_save():
>
> ... 325 if (argc < 6 || argc > 7) 326
> return CMD_RET_USAGE; ...
>
> And are you sure of "fatwrite"? This calls do_fat_fswrite(). and
> here I also see some test:
>
> ... 98 if (argc < 5) 99 return
> cmd_usage(cmdtp); ...

Off-by-one error somewhere? 'mmc' 'part' 'ddr-addr' 'filename' will
blowup as we use an insane value for size. I suspect we aren't eating
'fatwrite' somewhere along the line.

- --
Tom
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.11 (GNU/Linux)
Comment: Using GnuPG with Thunderbird - http://www.enigmail.net/

iQIcBAEBAgAGBQJSUsPdAAoJENk4IS6UOR1W6kEP/ijUEElKWLxsfJKLR1y0BbJ6
NaovYZ2Pz2UiOIEbk186hqEnpyaMU+2WlTavs61nufZ7fiteWkHS+536pgg/7GlG
pA9Uiq0DzI5RVG0EuaBJ62lt55JV9RWavdYlnGBEcgaD7ESLBTtizGbdKW30vW4S
FLfBXvEZVnYzTcIGT0kj8zEOLlg05QN6Asik8sv9GbwjX4wxVKwD0lpLYMmP/hy1
d/H6ql2a682HSAQw/6C+QxK89bSYbFay5+VhmFCZESM97tI1vWYIFC6hQsg8q+jl
/1asD1hquvv5Of7O2xIMyvmExPD25mbeflyTYnXoMFb8SL1VKNBfSdljcBPeTe8G
TBJMdURCf6zptmR+qUt8fRmWImhYZhalq+oyEImA4uKxu9zSBIBFcILKCJQ9LCXI
Hp0oaRaBUZVfD2Dno2g7fYgNwuOkXv/IpK/pWY0F6a2jNXGZooni9TdvkLeqX0sB
Bdgk1gz2EDeXIxvG/H4vTTWF5lVDh7Y5NHnqPW+HJ0fhaSqqxsklaXIU4np7EjIB
hfmwhi25fJZrGlUVgDG6YTkjTE8FOKfCaYVlFtIbrGZo14U27JucUBbLOeVxtEU0
VcdVcJx/pzi9377DbpWd8dF6XryMAMR3/de58ady6/TsoWZ90axIMykz3xE1TgAF
cppQkXNHHtao0PDxeWcV
=ntyL
-----END PGP SIGNATURE-----