[exim-dev] [Bug 2789] New: PRDR ACL return code of ERROR is …

Top Page
Delete this message
Reply to this message
Author: admin
Date:  
To: exim-dev
Subject: [exim-dev] [Bug 2789] New: PRDR ACL return code of ERROR is not handled correctly
https://bugs.exim.org/show_bug.cgi?id=2789

            Bug ID: 2789
           Summary: PRDR ACL return code of ERROR is not handled correctly
           Product: Exim
           Version: 4.94
          Hardware: x86
                OS: Linux
            Status: NEW
          Severity: bug
          Priority: medium
         Component: ACLs
          Assignee: jgh146exb@???
          Reporter: bugzilla.exim.simon@???
                CC: exim-dev@???


I was using something that is not valid in the PRDR ACL, so it returns ERROR.

The PRDR process in receive_msg() only handles OK/DEFER/FAIL correctly.

If ERROR is returned then this is handled as the default cause of FAIL and 550
is returned. It should be handled like DEFER and return 450.


The all_fail check decides that all of the recipients have failed because FAIL
is 2 and ERROR is 3, so "all_fail = FAIL; all_fail &= rc;" results in "all_fail
== FAIL".

Updating of "all_pass" and "all_fail" should be moved into the "rc" switch
statement instead of trying to handle return codes that are not really bit
flags.


To make the problem worse, the Exim client (based on 4.90) somehow skipped the
PRDR responses per address and only reports the overall response:
2021-07-13T17:13:03.004+01:00 1m3L1n-0000LI-VV ** a@??? P=<b@???>
R=dnslookup_ipv4 T=remote_smtp H=c.example [192.0.2.1]:25
X=TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256 CV=yes DN="CN=c.example": SMTP error
from remote mail server after end of data: 550 id=1m3L1p-0000JE-VS message
rejected for all recipients

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