summaryrefslogtreecommitdiffstats
path: root/commands
diff options
context:
space:
mode:
authorSascha Hauer <s.hauer@pengutronix.de>2023-06-12 14:12:11 +0200
committerSascha Hauer <s.hauer@pengutronix.de>2023-06-13 08:42:05 +0200
commitadadd6c0fcfd6b11076e0110497dd7ecdb44f99c (patch)
tree7a93e438f9133a728032577556bda3e5cf06df39 /commands
parent1baa83292b3b742e5c5dacff8b2c67ee62668184 (diff)
downloadbarebox-adadd6c0fcfd6b11076e0110497dd7ecdb44f99c.tar.gz
barebox-adadd6c0fcfd6b11076e0110497dd7ecdb44f99c.tar.xz
dmesg: error out on unknown loglevels
The user deserves an error when an unknown loglevel is given, so print an error instead of silently ignoring unknown loglevels. Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Diffstat (limited to 'commands')
-rw-r--r--commands/dmesg.c12
1 files changed, 9 insertions, 3 deletions
diff --git a/commands/dmesg.c b/commands/dmesg.c
index 339910bb76..0d46353fb5 100644
--- a/commands/dmesg.c
+++ b/commands/dmesg.c
@@ -32,6 +32,8 @@ static int str_to_loglevel(const char *str)
if (!strcmp(str, "emerg"))
return MSG_EMERG;
+ printf("dmesg: unknown loglevel %s\n", str);
+
return -EINVAL;
}
@@ -49,8 +51,12 @@ static unsigned dmesg_get_levels(const char *__args)
break;
level = str_to_loglevel(str);
- if (level >= 0)
- flags |= BIT(level);
+ if (level < 0) {
+ flags = 0;
+ break;
+ }
+
+ flags |= BIT(level);
}
free(args);
@@ -81,7 +87,7 @@ static int do_dmesg(int argc, char *argv[])
case 'l':
levels = dmesg_get_levels(optarg);
if (!levels)
- return COMMAND_ERROR_USAGE;
+ return COMMAND_ERROR;
break;
case 'r':
flags |= BAREBOX_LOG_PRINT_RAW | BAREBOX_LOG_PRINT_TIME;