summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHeinrich Schuchardt <xypron.glpk@gmx.de>2020-05-31 13:44:51 +0000
committerSimon Glass <sjg@chromium.org>2020-06-11 20:52:11 -0600
commit77007f9543a0fac8c4f60800de6ddccfacd9af5d (patch)
tree52f181c78e09280f564814d9a644d47bac61348e
parent7b6c34cb15270c3dbd463faaceb2bfbdd0b8f1a8 (diff)
downloadu-boot-77007f9543a0fac8c4f60800de6ddccfacd9af5d.tar.gz
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>
-rw-r--r--cmd/log.c14
1 files changed, 11 insertions, 3 deletions
diff --git a/cmd/log.c b/cmd/log.c
index 664f7bd7ac..78352b2cb9 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;
}