------- You are receiving this mail because: -------
You are on the CC list for the bug.

http://bugs.exim.org/show_bug.cgi?id=1518
           Summary: router condition silently ignored if too many back
                    braces
           Product: Exim
           Version: 4.76
          Platform: x86-64
        OS/Version: Linux
            Status: NEW
          Severity: bug
          Priority: high
         Component: Routing
        AssignedTo: [email protected]
        ReportedBy: [email protected]
                CC: [email protected]


Created an attachment (id=747)
 --> (http://bugs.exim.org/attachment.cgi?id=747)
Basic configuration for Exim that should trigger a silent fail/ignore of router
condition

If I construct a router and give it a condition with more back-curly-braces
than forward-curly-braces then Exim ignores that condition (assumes condition
succeeds) without any warning or failure.

e.g.

    dnslookup:
      driver = dnslookup
      condition = ${if eq {${lc:$domain}} {google.com}} {yes} {no}}
      transport = remote_smtp

If I test this with a condition that SHOULD fail ([email protected]):

    # exim -C test2.conf -d -bt [email protected]
    Considering [email protected]
    >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
    routing [email protected]
    --------> dnslookup router <--------
    checking "condition"
    calling dnslookup router

However if I fix my condition line with correct brace balance:

      condition = ${if eq {${lc:$domain}} {google.com} {yes} {no}}

and re-test:

    # exim -C test2.conf -d -bt [email protected]
    Considering [email protected]
    >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
    routing [email protected]
    --------> dnslookup router <--------
    checking "condition"
    dnslookup router skipped: condition failure

This is correct behaviour.

Note that the silent fail also occurs with the following condition lines:

      condition = ${if eq {${lc:$domain}} {google.com}}}} {yes} {no}}

and

      condition = ${if eq {${lc:$domain}} {google.com} {yes} {no}} \
        }

Pretty dangerous consider that users may never discover this issue unless a
customer complains e-mail is never being delivered!

I think silent fails are severe and am proposing this has a priority of high. I
know that, as a system administrator, this has the potential to cause major
trouble.

Attaching test2.conf - a basic configuration to trigger this error.


-- 
Configure bugmail: http://bugs.exim.org/userprefs.cgi?tab=email

-- 
## List details at https://lists.exim.org/mailman/listinfo/exim-dev Exim 
details at http://www.exim.org/ ##

Reply via email to