]> git.ipfire.org Git - thirdparty/asterisk.git/commitdiff
res_tonedetect: Fixes some logic issues and typos
authorNaveen Albert <asterisk@phreaknet.org>
Tue, 11 Jan 2022 19:19:13 +0000 (19:19 +0000)
committerFriendly Automation <jenkins2@gerrit.asterisk.org>
Mon, 31 Jan 2022 14:41:16 +0000 (08:41 -0600)
Fixes some minor logic issues with the module:

Previously, the OPT_END_FILTER flag was getting
tested before options were parsed, so it could
never evaluate to true (wrong ordering).

Additionally, the initially parsed timeout (float)
needs to be compared with 0, not the result int
which is set afterwards (wrong variable).

ASTERISK-29857 #close

Change-Id: I0062bce3b391c15e5df7a714780eeaa96dd93d4c

res/res_tonedetect.c

index b65a69b9774c03a812cd5e55e7028989efe2ac1e..4943f69fdc1686fa9538c5d0ba41420e0017b89e 100644 (file)
@@ -596,12 +596,12 @@ static int detect_write(struct ast_channel *chan, const char *cmd, char *data, c
        parse = ast_strdupa(data);
        AST_STANDARD_APP_ARGS(args, parse);
 
-       if (ast_test_flag(&flags, OPT_END_FILTER)) {
-               return remove_detect(chan);
-       }
        if (!ast_strlen_zero(args.options)) {
                ast_app_parse_options(td_opts, &flags, opt_args, args.options);
        }
+       if (ast_test_flag(&flags, OPT_END_FILTER)) {
+               return remove_detect(chan);
+       }
        if (freq_parser(args.freqs, &freq1, &freq2)) {
                return -1;
        }
@@ -739,7 +739,7 @@ static int wait_exec(struct ast_channel *chan, const char *data)
                pbx_builtin_setvar_helper(chan, "WAITFORTONESTATUS", "ERROR");
                return -1;
        }
-       if (!ast_strlen_zero(args.timeout) && (sscanf(args.timeout, "%30lf", &timeoutf) != 1 || timeout < 0)) {
+       if (!ast_strlen_zero(args.timeout) && (sscanf(args.timeout, "%30lf", &timeoutf) != 1 || timeoutf < 0)) {
                ast_log(LOG_WARNING, "Invalid timeout: %s\n", args.timeout);
                pbx_builtin_setvar_helper(chan, "WAITFORTONESTATUS", "ERROR");
                return -1;