[PATCH v2 11/13] examples/ethtool: fix exit flag and unchecked cmdline
From: Stephen Hemminger <stephen@networkplumber.org>
Date: 2026-09-07 17:06:04
Subsystem:
the rest · Maintainer:
Linus Torvalds
The exit_now flag is polled by worker_main() on one lcore and set by
main() on another, but is a plain int so the load can be hoisted out
of the loop. Make it volatile.
Also check the cmdline_stdin_new() result before using it.
Found by gcc -fanalyzer.
Fixes: bda68ab9d1e7 ("examples/ethtool: add user-space ethtool sample application")
Cc: stable@dpdk.org
Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
Acked-by: Bruce Richardson <redacted>
---
examples/ethtool/ethtool-app/ethapp.c | 5 +++++
examples/ethtool/ethtool-app/main.c | 2 +-
2 files changed, 6 insertions(+), 1 deletion(-)
diff --git a/examples/ethtool/ethtool-app/ethapp.c b/examples/ethtool/ethtool-app/ethapp.c
index 489cd4f515..68c8a29b96 100644
--- a/examples/ethtool/ethtool-app/ethapp.c
+++ b/examples/ethtool/ethtool-app/ethapp.c@@ -4,6 +4,8 @@ #include <stdlib.h> +#include <rte_debug.h> + #include <cmdline_parse.h> #include <cmdline_parse_num.h> #include <cmdline_parse_string.h>
@@ -914,6 +916,9 @@ void ethapp_main(void) struct cmdline *ctx_cmdline; ctx_cmdline = cmdline_stdin_new(list_prompt_commands, "EthApp> "); + if (ctx_cmdline == NULL) + rte_panic("Cannot create cmdline instance\n"); + cmdline_interact(ctx_cmdline); cmdline_stdin_exit(ctx_cmdline); }
diff --git a/examples/ethtool/ethtool-app/main.c b/examples/ethtool/ethtool-app/main.c
index 6545eb322d..ddd256cd7b 100644
--- a/examples/ethtool/ethtool-app/main.c
+++ b/examples/ethtool/ethtool-app/main.c@@ -44,7 +44,7 @@ struct app_port { struct app_config { struct app_port ports[MAX_PORTS]; int cnt_ports; - int exit_now; + volatile int exit_now; };
--
2.53.0