clients when the SMTP PIPELINING extension is in use. The flushing can be
disabled by using a &%control%& modifier to set &%no_callout_flush%&.
+.new
+.cindex "tainted data" "de-tainting"
+.cindex "de-tainting" "using receipient verify"
+A recipient callout which gets a 2&'xx'& code
+will assign untainted values to the
+&$domain_data$& and &$local_part_data$& variables,
+corresponding to the domain and local parts of the recipient address.
+.wen
+
the expansion of the "true" result of the ${if}. With a static list, this
can be used for de-tainting.
+ 8. Recipient verify callouts now set $domain_data & $local_part_data, with
+ de-tainted values.
+
Version 4.95
------------
}
+
+
+/* A rcpt callout, or cached record of one, verified the address.
+Set $domain_data and $local_part_data to detainted versions.
+*/
+static void
+callout_verified_rcpt(const address_item * addr)
+{
+address_item a = {.address = addr->address};
+if (deliver_split_address(&a) != OK) return;
+deliver_localpart_data = string_copy_taint(a.local_part, GET_UNTAINTED);
+deliver_domain_data = string_copy_taint(a.domain, GET_UNTAINTED);
+}
+
+
/*************************************************
* Do callout verification for an address *
*************************************************/
#ifndef DISABLE_TLS
deliver_set_expansions(NULL);
#endif
+ if ( options & vopt_is_recipient
+ && rc == OK
+ /* set to "random", with OK, for an accepted random */
+ && !recipient_verify_failure
+ )
+ callout_verified_rcpt(addr);
}
}
else if (local_verify)
QUIT
250 OK
****
+# A rcpt refusal
exim -bs
ehlo xxxx
mail from:<x9@test.ex>
QUIT
250 OK
****
+# an accepted random
exim -DUSE_SENDER=,defer_ok,random,use_postmaster -bs
ehlo xxxx
mail from: x11@two.test.ex
quit
****
dump callout
+# repeat from cache
+exim -DUSE_SENDER=,defer_ok,random,use_postmaster -bs
+ehlo xxxx
+mail from: x11@two.test.ex
+rcpt to: r11@two.test.ex
+quit
+****
#
# callout target dumps after random-reject
server PORT_S 2
250 OK\r
250 Accepted\r
221 the.local.host.name closing connection\r
+220 the.local.host.name ESMTP Exim x.yz Tue, 2 Mar 1999 09:44:33 +0000\r
+250-the.local.host.name Hello CALLER at xxxx\r
+250-SIZE 52428800\r
+250-8BITMIME\r
+250-PIPELINING\r
+250 HELP\r
+250 OK\r
+250 Accepted\r
+221 the.local.host.name closing connection\r
+++++++++++++++++++++++++++
07-Mar-2000 12:21:52 other.ex callout=accept postmaster=unknown random=unknown
07-Mar-2000 12:21:52 r12@three.test.ex callout=accept