diff options
author | Heinrich Schuchardt | 2020-05-31 13:44:51 +0000 |
---|---|---|
committer | Simon Glass | 2020-06-11 20:52:11 -0600 |
commit | 77007f9543a0fac8c4f60800de6ddccfacd9af5d (patch) | |
tree | 52f181c78e09280f564814d9a644d47bac61348e /cmd/log.c | |
parent | 7b6c34cb15270c3dbd463faaceb2bfbdd0b8f1a8 (diff) |
log: check argument of 'log level' command
Check that the argument provided to the 'log level' command is in the range
between zero and CONFIG_LOG_MAX_LEVEL.
Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
Reviewed-by: Simon Glass <sjg@chromium.org>
Diffstat (limited to 'cmd/log.c')
-rw-r--r-- | cmd/log.c | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/cmd/log.c b/cmd/log.c index 664f7bd7ac4..78352b2cb91 100644 --- a/cmd/log.c +++ b/cmd/log.c @@ -14,10 +14,18 @@ static char log_fmt_chars[LOGF_COUNT] = "clFLfm"; static int do_log_level(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[]) { - if (argc > 1) - gd->default_log_level = simple_strtol(argv[1], NULL, 10); - else + if (argc > 1) { + long log_level = simple_strtol(argv[1], NULL, 10); + + if (log_level < 0 || log_level > _LOG_MAX_LEVEL) { + printf("Only log levels <= %d are supported\n", + _LOG_MAX_LEVEL); + return CMD_RET_FAILURE; + } + gd->default_log_level = log_level; + } else { printf("Default log level: %d\n", gd->default_log_level); + } return 0; } |