From 0631c813e27b6ad9580fdf8f821b3c3418287a60 Mon Sep 17 00:00:00 2001 From: bloqaudio Date: Fri, 18 Sep 2026 13:56:53 -0500 Subject: [PATCH] cmd: parse the port of an eee command from the start of the word parse_eee() sniffs word 2 for a trailing 'g' or 'm' to tell a speed from a port number, and advances idx past the digits to do so. The port branch then hands that advanced idx to cmd_parse_port_separator(), which expects the first character of the number and finds the separator instead, so it returns 0 and the command is rejected. Every other caller passes cmd_words_b[]. The result is that no eee command carrying a port number works, in any argument order, and the stored per-port lines a saved configuration replays are silently dropped. Reported by tofurky in issue #459, along with this fix. --- cmd_parser.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cmd_parser.c b/cmd_parser.c index d4c4df8b..33d4c6c3 100644 --- a/cmd_parser.c +++ b/cmd_parser.c @@ -1419,7 +1419,7 @@ void parse_eee(void) speed_word = 2; } else if (cmd_is_space_or_nul(idx)) { // Word 2 is a port number - if (cmd_parse_port_separator(idx) == 0) { + if (cmd_parse_port_separator(cmd_words_b[2]) == 0) { cmd_error("Speed word invalid, use: [100m|1g|2g5]\n"); return; }