summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJeremy Harris <jgh146exb@wizmail.org>2018-03-26 15:53:49 +0100
committerJeremy Harris <jgh146exb@wizmail.org>2018-03-26 17:36:13 +0100
commitaabb09d27607fcda9ec49ad28994ceaf3bc65977 (patch)
tree27f0e84d1781b2b9c890941b35595a7985d091fb
parente85aad604e8dba48dd9f2dbe9644ca8a46f3137c (diff)
downloadexim4-exim-4_90+fixes.tar.gz
Cutthrough: enforce non-use in combination with DKIM signing or transport filterexim-4_90+fixes
Broken-by: 02b41d7106
-rw-r--r--doc/doc-txt/ChangeLog4
-rw-r--r--src/src/verify.c14
2 files changed, 18 insertions, 0 deletions
diff --git a/doc/doc-txt/ChangeLog b/doc/doc-txt/ChangeLog
index a42899ca6..8fafb9017 100644
--- a/doc/doc-txt/ChangeLog
+++ b/doc/doc-txt/ChangeLog
@@ -110,6 +110,10 @@ JH/31 Bug 2257: Fix pipe transport to not use a socket-only syscall.
JH/32 Bug 2258: Fix spool_wireformat in combination with LMTP transport.
Previously the "final dot" had a newline after it; ensure it is CR,LF.
+JH/34 Re-introduce enforcement of no cutthrough delivery on transports having
+ transport-filters or DKIM-signing. The restriction was lost in the
+ consolidation of verify-callout and delivery SMTP handling.
+
Exim version 4.90
-----------------
diff --git a/src/src/verify.c b/src/src/verify.c
index 544069bb1..6e010528d 100644
--- a/src/src/verify.c
+++ b/src/src/verify.c
@@ -1026,6 +1026,20 @@ no_conn:
here is where we want to leave the conn open. Ditto for a lazy-close
verify. */
+ if (cutthrough.delivery)
+ {
+ if (addr->transport->filter_command)
+ {
+ cutthrough.delivery= FALSE;
+ HDEBUG(D_acl|D_v) debug_printf("Cutthrough cancelled by presence of transport filter\n");
+ }
+ if (ob->dkim.dkim_domain)
+ {
+ cutthrough.delivery= FALSE;
+ HDEBUG(D_acl|D_v) debug_printf("Cutthrough cancelled by presence of DKIM signing\n");
+ }
+ }
+
if ( (cutthrough.delivery || options & vopt_callout_hold)
&& rcpt_count == 1
&& done