summaryrefslogtreecommitdiff
path: root/common/cmd_test.c
AgeCommit message (Collapse)Author
2012-10-03Change dead code in "test" cmd to debug outputJoe Hershberger
Improve debug output for test by indicating the number of parameters and quoting the parameters to make it clear exactly what each contains Signed-off-by: Joe Hershberger <joe.hershberger@ni.com>
2010-07-04Make sure that argv[] argument pointers are not modified.Wolfgang Denk
The hush shell dynamically allocates (and re-allocates) memory for the argument strings in the "char *argv[]" argument vector passed to commands. Any code that modifies these pointers will cause serious corruption of the malloc data structures and crash U-Boot, so make sure the compiler can check that no such modifications are being done by changing the code into "char * const argv[]". This modification is the result of debugging a strange crash caused after adding a new command, which used the following argument processing code which has been working perfectly fine in all Unix systems since version 6 - but not so in U-Boot: int main (int argc, char **argv) { while (--argc > 0 && **++argv == '-') { /* ====> */ while (*++*argv) { switch (**argv) { case 'd': debug++; break; ... default: usage (); } } } ... } The line marked "====>" will corrupt the malloc data structures and usually cause U-Boot to crash when the next command gets executed by the shell. With the modification, the compiler will prevent this with an error: increment of read-only location '*argv' N.B.: The code above can be trivially rewritten like this: while (--argc > 0 && **++argv == '-') { char *arg = *argv; while (*++arg) { switch (*arg) { ... Signed-off-by: Wolfgang Denk <wd@denx.de> Acked-by: Mike Frysinger <vapier@gentoo.org>
2009-11-23Add 'true' and 'false' commandsPeter Tyser
These commands are only enabled when the hush shell is enabled and can be useful in scripts such as: while true do echo "Booting OS..."; run $bootcmd; echo "Booting OS failed"; sleep 10; done Signed-off-by: Peter Tyser <ptyser@xes-inc.com>
2009-11-23command.c: Break commands out to appropriate cmd_*.c filesPeter Tyser
command.c should contain common code related to commands, not miscellaneous command implementations. Signed-off-by: Peter Tyser <ptyser@xes-inc.com>