From 76a7a56e85ad56f2e688ca595fbecdaadf71442e Mon Sep 17 00:00:00 2001 From: Martin Lund Date: Sun, 14 Apr 2024 11:43:19 +0200 Subject: [PATCH] Rework line_pulse_duration_option_parse() Introduce proper sscanf() checks. --- src/options.c | 54 ++++++++++++++++++++++++++------------------------- 1 file changed, 28 insertions(+), 26 deletions(-) diff --git a/src/options.c b/src/options.c index 427e4e8..feef128 100644 --- a/src/options.c +++ b/src/options.c @@ -176,35 +176,37 @@ void line_pulse_duration_option_parse(const char *arg) char keyname[11]; unsigned int value; - if (sscanf(token, "%10[^=]=%d", keyname, &value) != 2) + if (sscanf(token, "%10[^=]=%d", keyname, &value) == 2) + { + if (!strcmp(keyname, "DTR")) + { + option.dtr_pulse_duration = value; + } + else if (!strcmp(keyname, "RTS")) + { + option.rts_pulse_duration = value; + } + else if (!strcmp(keyname, "CTS")) + { + option.cts_pulse_duration = value; + } + else if (!strcmp(keyname, "DSR")) + { + option.dsr_pulse_duration = value; + } + else if (!strcmp(keyname, "DCD")) + { + option.dcd_pulse_duration = value; + } + else if (!strcmp(keyname, "RI")) + { + option.ri_pulse_duration = value; + } + } + else { token_found = false; } - - if (!strcmp(keyname, "DTR")) - { - option.dtr_pulse_duration = value; - } - else if (!strcmp(keyname, "RTS")) - { - option.rts_pulse_duration = value; - } - else if (!strcmp(keyname, "CTS")) - { - option.cts_pulse_duration = value; - } - else if (!strcmp(keyname, "DSR")) - { - option.dsr_pulse_duration = value; - } - else if (!strcmp(keyname, "DCD")) - { - option.dcd_pulse_duration = value; - } - else if (!strcmp(keyname, "RI")) - { - option.ri_pulse_duration = value; - } } else {