summaryrefslogtreecommitdiff
path: root/common/cmd_demo.c
diff options
context:
space:
mode:
authorPeter Tyser <ptyser@xes-inc.com>2015-02-03 13:18:49 -0600
committerSimon Glass <sjg@chromium.org>2015-02-12 10:35:29 -0700
commitb922a5f94d960b0464f81b439c34707071095565 (patch)
tree6ffcf7e124123b82664cac9b36f4cd849b30b06e /common/cmd_demo.c
parent9009798df20f60fd53679b537fcb4df3460b7cf8 (diff)
dm: Prevent "demo hello" and "demo status" segfaults
Segfaults can occur when a mandatory argument is not provided to "demo hello" and "demo status". Eg: => demo hello Segmentation fault (core dumped) Add a check to ensure all required arguments are provided. Signed-off-by: Peter Tyser <ptyser@xes-inc.com> Acked-by: Simon Glass <sjg@chromium.org>
Diffstat (limited to 'common/cmd_demo.c')
-rw-r--r--common/cmd_demo.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/common/cmd_demo.c b/common/cmd_demo.c
index bcb34d9045..8a10bdf42a 100644
--- a/common/cmd_demo.c
+++ b/common/cmd_demo.c
@@ -97,7 +97,9 @@ static int do_demo(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
ARRAY_SIZE(demo_commands));
argc -= 2;
argv += 2;
- if (!demo_cmd || argc > demo_cmd->maxargs)
+
+ if ((!demo_cmd || argc > demo_cmd->maxargs) ||
+ ((demo_cmd->name[0] != 'l') && (argc < 1)))
return CMD_RET_USAGE;
if (argc) {