[dpdk-dev] [PATCH v4 06/11] eal: catch invalid log level number
From: Thomas Monjalon <hidden>
Date: 2021-03-21 22:32:42
Subsystem:
library code, the rest · Maintainers:
Andrew Morton, Linus Torvalds
From: Thomas Monjalon <hidden>
Date: 2021-03-21 22:32:42
Subsystem:
library code, the rest · Maintainers:
Andrew Morton, Linus Torvalds
The parsing check for invalid log level was not trying to catch irrelevant numeric values. A log level 0 is now a failure in options parsing so it can be caught early. A log level higher than the max (8) is accepted with a warning message. Signed-off-by: Thomas Monjalon <redacted> Acked-by: Bruce Richardson <redacted> Acked-by: Andrew Rybchenko <redacted> --- lib/librte_eal/common/eal_common_options.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-)
diff --git a/lib/librte_eal/common/eal_common_options.c b/lib/librte_eal/common/eal_common_options.c
index 3675e55fc9..2df3ae04ea 100644
--- a/lib/librte_eal/common/eal_common_options.c
+++ b/lib/librte_eal/common/eal_common_options.c@@ -1289,10 +1289,15 @@ eal_parse_log_level(const char *arg) } priority = eal_parse_log_priority(level); - if (priority < 0) { - fprintf(stderr, "invalid log priority: %s\n", level); + if (priority <= 0) { + fprintf(stderr, "Invalid log level: %s\n", level); goto fail; } + if (priority > (int)RTE_LOG_MAX) { + fprintf(stderr, "Log level %d higher than maximum (%d)\n", + priority, RTE_LOG_MAX); + priority = RTE_LOG_MAX; + } if (regex) { if (rte_log_set_level_regexp(regex, priority) < 0) {
--
2.30.1