[asterisk-bugs] [JIRA] (ASTERISK-29811) func_logic: IF func (acf_if) inconsistent behavior

Joshua C. Colp (JIRA) noreply at issues.asterisk.org
Fri Jan 7 06:18:07 CST 2022


     [ https://issues.asterisk.org/jira/browse/ASTERISK-29811?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Joshua C. Colp updated ASTERISK-29811:
--------------------------------------

    Summary: func_logic: IF func (acf_if) inconsistent behavior  (was: func_logic IF func (acf_if) inconsistent behavior)

> func_logic: IF func (acf_if) inconsistent behavior
> --------------------------------------------------
>
>                 Key: ASTERISK-29811
>                 URL: https://issues.asterisk.org/jira/browse/ASTERISK-29811
>             Project: Asterisk
>          Issue Type: Bug
>      Security Level: None
>          Components: Functions/func_logic
>    Affects Versions: 18.9.0
>            Reporter: Ruslan Andronov
>            Assignee: Unassigned
>              Labels: patch
>         Attachments: func_logic.patch, func_logic.patch, func_logic.patch
>
>
> IF function strips quotes and slashes only from TRUE argument and FALSE argument of function stays untouched.
> h3. Proof
> Dialplan:
> {noformat}
> exten = test,1,GoSub(test_if_func,s,1)
> [test_if_func]
> exten = s,1,NoOp
>  same = n,Set(TRUEARG="abcd" \$)
>  same = n,Set(FALSEARG="gijk" \$)
>  same = n,Set(TRUERES=${IF($[1=1]?${TRUEARG}:${FALSEARG})})
>  same = n,Set(FALSERES=${IF($[1!=1]?${TRUEARG}:${FALSEARG})})
>  same = n,NoOp(TRUERES:${TRUERES} FALSERES:${FALSERES})
> {noformat}
> Log:
> {noformat}
>     -- Executing [test at from-internal:1] Gosub("PJSIP/6789-00000003", "test_if_func,s,1") in new stack
>     -- Executing [s at test_if_func:1] NoOp("PJSIP/6789-00000003", "") in new stack
>     -- Executing [s at test_if_func:2] Set("PJSIP/6789-00000003", "TRUEARG="abcd" \$") in new stack
>     -- Executing [s at test_if_func:3] Set("PJSIP/6789-00000003", "FALSEARG="gijk" \$") in new stack
>     -- Executing [s at test_if_func:4] Set("PJSIP/6789-00000003", "TRUERES=abcd $") in new stack
>     -- Executing [s at test_if_func:5] Set("PJSIP/6789-00000003", "FALSERES="gijk" \$") in new stack
>     -- Executing [s at test_if_func:6] NoOp("PJSIP/6789-00000003", "TRUERES:abcd $ FALSERES:"gijk" \$") in new stack
> {noformat}
> it seems that function __ast_app_separate_args contains a bug.
> but personally I will prefer that IF function will use AST_NONSTANDARD_RAW_ARGS macro like GotoIf and ExecIf
> suggested patch is attached



--
This message was sent by Atlassian JIRA
(v6.2#6252)



More information about the asterisk-bugs mailing list