Auths: fix possible OOB read in SPA authenticator. Bug 3001
[exim.git] / test / stderr / 0402
index b5b2ed099bfb1fcadab81c316424d4df1c9dfafc..3f892f56da6df2578e774bbe635a679ec49bb69c 100644 (file)
@@ -1,15 +1,11 @@
 Exim version x.yz ....
 changed uid/gid: forcing real = effective
   uid=uuuu gid=CALLER_GID pid=pppp
 Exim version x.yz ....
 changed uid/gid: forcing real = effective
   uid=uuuu gid=CALLER_GID pid=pppp
+adding SSLKEYLOGFILE=TESTSUITE/spool/sslkeys
 configuration file is TESTSUITE/test-config
 admin user
 changed uid/gid: privilege not needed
   uid=EXIM_UID gid=EXIM_GID pid=pppp
 configuration file is TESTSUITE/test-config
 admin user
 changed uid/gid: privilege not needed
   uid=EXIM_UID gid=EXIM_GID pid=pppp
-DSN: r1 propagating DSN
-DSN: r2 propagating DSN
-DSN: r3 propagating DSN
-DSN: r4 propagating DSN
-DSN: r5 propagating DSN
 seeking password data for user "CALLER": cache not available
 getpwnam() succeeded uid=CALLER_UID gid=CALLER_GID
 seeking password data for user "CALLER": using cached result
 seeking password data for user "CALLER": cache not available
 getpwnam() succeeded uid=CALLER_UID gid=CALLER_GID
 seeking password data for user "CALLER": using cached result
@@ -31,8 +27,11 @@ Recipients:
 search_tidyup called
 >>Headers received:
 
 search_tidyup called
 >>Headers received:
 
-rewrite_one_header: type=F:
-  From: CALLER_NAME <CALLER@test.ex>
+qualify & rewrite recipients list
+global rewrite rules
+rewrite headers
+ rewrite_one_header: type=F:
+   From: CALLER_NAME <CALLER@test.ex>
 search_tidyup called
 >>Headers after rewriting and local additions:
 I Message-Id: <E10HmaX-0005vi-00@mail.test.ex>
 search_tidyup called
 >>Headers after rewriting and local additions:
 I Message-Id: <E10HmaX-0005vi-00@mail.test.ex>
@@ -41,20 +40,53 @@ F From: CALLER_NAME <CALLER@test.ex>
 
 Data file name: TESTSUITE/spool//input//10HmaX-0005vi-00-D
 Data file written for message 10HmaX-0005vi-00
 
 Data file name: TESTSUITE/spool//input//10HmaX-0005vi-00-D
 Data file written for message 10HmaX-0005vi-00
- â\94\8cconsidering: ${tod_full}
+ â\95­considering: ${tod_full}
  ├──expanding: ${tod_full}
  ├──expanding: ${tod_full}
- â\94\94─────result: Tue, 2 Mar 1999 09:44:33 +0000
- â\94\8cconsidering: Received: ${if def:sender_rcvhost {from $sender_rcvhost
+ â\95°─────result: Tue, 2 Mar 1999 09:44:33 +0000
+ â\95­considering: Received: ${if def:sender_rcvhost {from $sender_rcvhost
        }{${if def:sender_ident {from ${quote_local_part:$sender_ident} }}${if def:sender_helo_name {(helo=$sender_helo_name)
        }{${if def:sender_ident {from ${quote_local_part:$sender_ident} }}${if def:sender_helo_name {(helo=$sender_helo_name)
-       }}}}by $primary_hostname ${if def:received_protocol {with $received_protocol}} (Exim $version_number)
+       }}}}by $primary_hostname ${if def:received_protocol {with $received_protocol }}${if def:tls_in_ver        { ($tls_in_ver)}}${if def:tls_in_cipher_std { tls $tls_in_cipher_std
+       }}(Exim $version_number)
+       ${if def:sender_address {(envelope-from <$sender_address>)
+       }}id $message_exim_id${if def:received_for {
+       for $received_for}}
+ ├───────text: Received: 
+ ├considering: ${if def:sender_rcvhost {from $sender_rcvhost
+       }{${if def:sender_ident {from ${quote_local_part:$sender_ident} }}${if def:sender_helo_name {(helo=$sender_helo_name)
+       }}}}by $primary_hostname ${if def:received_protocol {with $received_protocol }}${if def:tls_in_ver        { ($tls_in_ver)}}${if def:tls_in_cipher_std { tls $tls_in_cipher_std
+       }}(Exim $version_number)
        ${if def:sender_address {(envelope-from <$sender_address>)
        }}id $message_exim_id${if def:received_for {
        for $received_for}}
  ├──condition: def:sender_rcvhost
  ├─────result: false
        ${if def:sender_address {(envelope-from <$sender_address>)
        }}id $message_exim_id${if def:received_for {
        for $received_for}}
  ├──condition: def:sender_rcvhost
  ├─────result: false
-  ┌───scanning: from $sender_rcvhost
+  ╭───scanning: from $sender_rcvhost
+       }{${if def:sender_ident {from ${quote_local_part:$sender_ident} }}${if def:sender_helo_name {(helo=$sender_helo_name)
+       }}}}by $primary_hostname ${if def:received_protocol {with $received_protocol }}${if def:tls_in_ver        { ($tls_in_ver)}}${if def:tls_in_cipher_std { tls $tls_in_cipher_std
+       }}(Exim $version_number)
+       ${if def:sender_address {(envelope-from <$sender_address>)
+       }}id $message_exim_id${if def:received_for {
+       for $received_for}}
+  ├───────text: from 
+  ├───scanning: $sender_rcvhost
        }{${if def:sender_ident {from ${quote_local_part:$sender_ident} }}${if def:sender_helo_name {(helo=$sender_helo_name)
        }{${if def:sender_ident {from ${quote_local_part:$sender_ident} }}${if def:sender_helo_name {(helo=$sender_helo_name)
-       }}}}by $primary_hostname ${if def:received_protocol {with $received_protocol}} (Exim $version_number)
+       }}}}by $primary_hostname ${if def:received_protocol {with $received_protocol }}${if def:tls_in_ver        { ($tls_in_ver)}}${if def:tls_in_cipher_std { tls $tls_in_cipher_std
+       }}(Exim $version_number)
+       ${if def:sender_address {(envelope-from <$sender_address>)
+       }}id $message_exim_id${if def:received_for {
+       for $received_for}}
+  ├───scanning: 
+       }{${if def:sender_ident {from ${quote_local_part:$sender_ident} }}${if def:sender_helo_name {(helo=$sender_helo_name)
+       }}}}by $primary_hostname ${if def:received_protocol {with $received_protocol }}${if def:tls_in_ver        { ($tls_in_ver)}}${if def:tls_in_cipher_std { tls $tls_in_cipher_std
+       }}(Exim $version_number)
+       ${if def:sender_address {(envelope-from <$sender_address>)
+       }}id $message_exim_id${if def:received_for {
+       for $received_for}}
+  ├───────text: 
+       
+  ├───scanning: }{${if def:sender_ident {from ${quote_local_part:$sender_ident} }}${if def:sender_helo_name {(helo=$sender_helo_name)
+       }}}}by $primary_hostname ${if def:received_protocol {with $received_protocol }}${if def:tls_in_ver        { ($tls_in_ver)}}${if def:tls_in_cipher_std { tls $tls_in_cipher_std
+       }}(Exim $version_number)
        ${if def:sender_address {(envelope-from <$sender_address>)
        }}id $message_exim_id${if def:received_for {
        for $received_for}}
        ${if def:sender_address {(envelope-from <$sender_address>)
        }}id $message_exim_id${if def:received_for {
        for $received_for}}
@@ -62,32 +94,90 @@ Data file written for message 10HmaX-0005vi-00
        
   ├─────result: from 
        
        
   ├─────result: from 
        
-  └───skipping: result is not used
-  ┌considering: ${if def:sender_ident {from ${quote_local_part:$sender_ident} }}${if def:sender_helo_name {(helo=$sender_helo_name)
-       }}}}by $primary_hostname ${if def:received_protocol {with $received_protocol}} (Exim $version_number)
+  ╰───skipping: result is not used
+  ╭considering: ${if def:sender_ident {from ${quote_local_part:$sender_ident} }}${if def:sender_helo_name {(helo=$sender_helo_name)
+       }}}}by $primary_hostname ${if def:received_protocol {with $received_protocol }}${if def:tls_in_ver        { ($tls_in_ver)}}${if def:tls_in_cipher_std { tls $tls_in_cipher_std
+       }}(Exim $version_number)
        ${if def:sender_address {(envelope-from <$sender_address>)
        }}id $message_exim_id${if def:received_for {
        for $received_for}}
   ├──condition: def:sender_ident
   ├─────result: true
        ${if def:sender_address {(envelope-from <$sender_address>)
        }}id $message_exim_id${if def:received_for {
        for $received_for}}
   ├──condition: def:sender_ident
   ├─────result: true
-   ┌considering: from ${quote_local_part:$sender_ident} }}${if def:sender_helo_name {(helo=$sender_helo_name)
-       }}}}by $primary_hostname ${if def:received_protocol {with $received_protocol}} (Exim $version_number)
+   ╭considering: from ${quote_local_part:$sender_ident} }}${if def:sender_helo_name {(helo=$sender_helo_name)
+       }}}}by $primary_hostname ${if def:received_protocol {with $received_protocol }}${if def:tls_in_ver        { ($tls_in_ver)}}${if def:tls_in_cipher_std { tls $tls_in_cipher_std
+       }}(Exim $version_number)
        ${if def:sender_address {(envelope-from <$sender_address>)
        }}id $message_exim_id${if def:received_for {
        for $received_for}}
        ${if def:sender_address {(envelope-from <$sender_address>)
        }}id $message_exim_id${if def:received_for {
        for $received_for}}
-   ╎┌considering: $sender_ident} }}${if def:sender_helo_name {(helo=$sender_helo_name)
-   ╎ }}}}by $primary_hostname ${if def:received_protocol {with $received_protocol}} (Exim $version_number)
+   ├───────text: from 
+   ├considering: ${quote_local_part:$sender_ident} }}${if def:sender_helo_name {(helo=$sender_helo_name)
+       }}}}by $primary_hostname ${if def:received_protocol {with $received_protocol }}${if def:tls_in_ver        { ($tls_in_ver)}}${if def:tls_in_cipher_std { tls $tls_in_cipher_std
+       }}(Exim $version_number)
+       ${if def:sender_address {(envelope-from <$sender_address>)
+       }}id $message_exim_id${if def:received_for {
+       for $received_for}}
+   ╎╭considering: $sender_ident} }}${if def:sender_helo_name {(helo=$sender_helo_name)
+   ╎ }}}}by $primary_hostname ${if def:received_protocol {with $received_protocol }}${if def:tls_in_ver        { ($tls_in_ver)}}${if def:tls_in_cipher_std { tls $tls_in_cipher_std
+   ╎ }}(Exim $version_number)
+   ╎ ${if def:sender_address {(envelope-from <$sender_address>)
+   ╎ }}id $message_exim_id${if def:received_for {
+   ╎ for $received_for}}
+   ╎├considering: } }}${if def:sender_helo_name {(helo=$sender_helo_name)
+   ╎ }}}}by $primary_hostname ${if def:received_protocol {with $received_protocol }}${if def:tls_in_ver        { ($tls_in_ver)}}${if def:tls_in_cipher_std { tls $tls_in_cipher_std
+   ╎ }}(Exim $version_number)
    ╎ ${if def:sender_address {(envelope-from <$sender_address>)
    ╎ }}id $message_exim_id${if def:received_for {
    ╎ for $received_for}}
    ╎├──expanding: $sender_ident
    ╎ ${if def:sender_address {(envelope-from <$sender_address>)
    ╎ }}id $message_exim_id${if def:received_for {
    ╎ for $received_for}}
    ╎├──expanding: $sender_ident
-   ╎└─────result: CALLER
+   ╎╰─────result: CALLER
+   ├─────op-res: CALLER
+   ├considering:  }}${if def:sender_helo_name {(helo=$sender_helo_name)
+       }}}}by $primary_hostname ${if def:received_protocol {with $received_protocol }}${if def:tls_in_ver        { ($tls_in_ver)}}${if def:tls_in_cipher_std { tls $tls_in_cipher_std
+       }}(Exim $version_number)
+       ${if def:sender_address {(envelope-from <$sender_address>)
+       }}id $message_exim_id${if def:received_for {
+       for $received_for}}
+   ├───────text:  
+   ├considering: }}${if def:sender_helo_name {(helo=$sender_helo_name)
+       }}}}by $primary_hostname ${if def:received_protocol {with $received_protocol }}${if def:tls_in_ver        { ($tls_in_ver)}}${if def:tls_in_cipher_std { tls $tls_in_cipher_std
+       }}(Exim $version_number)
+       ${if def:sender_address {(envelope-from <$sender_address>)
+       }}id $message_exim_id${if def:received_for {
+       for $received_for}}
    ├──expanding: from ${quote_local_part:$sender_ident} 
    ├──expanding: from ${quote_local_part:$sender_ident} 
-   └─────result: from CALLER 
+   ╰─────result: from CALLER 
+  ├───item-res: from CALLER 
+  ├considering: ${if def:sender_helo_name {(helo=$sender_helo_name)
+       }}}}by $primary_hostname ${if def:received_protocol {with $received_protocol }}${if def:tls_in_ver        { ($tls_in_ver)}}${if def:tls_in_cipher_std { tls $tls_in_cipher_std
+       }}(Exim $version_number)
+       ${if def:sender_address {(envelope-from <$sender_address>)
+       }}id $message_exim_id${if def:received_for {
+       for $received_for}}
   ├──condition: def:sender_helo_name
   ├─────result: false
   ├──condition: def:sender_helo_name
   ├─────result: false
-   ┌───scanning: (helo=$sender_helo_name)
-       }}}}by $primary_hostname ${if def:received_protocol {with $received_protocol}} (Exim $version_number)
+   ╭───scanning: (helo=$sender_helo_name)
+       }}}}by $primary_hostname ${if def:received_protocol {with $received_protocol }}${if def:tls_in_ver        { ($tls_in_ver)}}${if def:tls_in_cipher_std { tls $tls_in_cipher_std
+       }}(Exim $version_number)
+       ${if def:sender_address {(envelope-from <$sender_address>)
+       }}id $message_exim_id${if def:received_for {
+       for $received_for}}
+   ├───────text: (helo=
+   ├───scanning: $sender_helo_name)
+       }}}}by $primary_hostname ${if def:received_protocol {with $received_protocol }}${if def:tls_in_ver        { ($tls_in_ver)}}${if def:tls_in_cipher_std { tls $tls_in_cipher_std
+       }}(Exim $version_number)
+       ${if def:sender_address {(envelope-from <$sender_address>)
+       }}id $message_exim_id${if def:received_for {
+       for $received_for}}
+   ├───scanning: )
+       }}}}by $primary_hostname ${if def:received_protocol {with $received_protocol }}${if def:tls_in_ver        { ($tls_in_ver)}}${if def:tls_in_cipher_std { tls $tls_in_cipher_std
+       }}(Exim $version_number)
+       ${if def:sender_address {(envelope-from <$sender_address>)
+       }}id $message_exim_id${if def:received_for {
+       for $received_for}}
+   ├───────text: )
+       
+   ├───scanning: }}}}by $primary_hostname ${if def:received_protocol {with $received_protocol }}${if def:tls_in_ver        { ($tls_in_ver)}}${if def:tls_in_cipher_std { tls $tls_in_cipher_std
+       }}(Exim $version_number)
        ${if def:sender_address {(envelope-from <$sender_address>)
        }}id $message_exim_id${if def:received_for {
        for $received_for}}
        ${if def:sender_address {(envelope-from <$sender_address>)
        }}id $message_exim_id${if def:received_for {
        for $received_for}}
@@ -95,85 +185,212 @@ Data file written for message 10HmaX-0005vi-00
        
    ├─────result: (helo=)
        
        
    ├─────result: (helo=)
        
-   └───skipping: result is not used
+   ╰───skipping: result is not used
+  ├───item-res: 
+  ├considering: }}by $primary_hostname ${if def:received_protocol {with $received_protocol }}${if def:tls_in_ver        { ($tls_in_ver)}}${if def:tls_in_cipher_std { tls $tls_in_cipher_std
+       }}(Exim $version_number)
+       ${if def:sender_address {(envelope-from <$sender_address>)
+       }}id $message_exim_id${if def:received_for {
+       for $received_for}}
   ├──expanding: ${if def:sender_ident {from ${quote_local_part:$sender_ident} }}${if def:sender_helo_name {(helo=$sender_helo_name)
        }}
   ├──expanding: ${if def:sender_ident {from ${quote_local_part:$sender_ident} }}${if def:sender_helo_name {(helo=$sender_helo_name)
        }}
-  └─────result: from CALLER 
+  ╰─────result: from CALLER 
+ ├───item-res: from CALLER 
+ ├considering: by $primary_hostname ${if def:received_protocol {with $received_protocol }}${if def:tls_in_ver        { ($tls_in_ver)}}${if def:tls_in_cipher_std { tls $tls_in_cipher_std
+       }}(Exim $version_number)
+       ${if def:sender_address {(envelope-from <$sender_address>)
+       }}id $message_exim_id${if def:received_for {
+       for $received_for}}
+ ├───────text: by 
+ ├considering: $primary_hostname ${if def:received_protocol {with $received_protocol }}${if def:tls_in_ver        { ($tls_in_ver)}}${if def:tls_in_cipher_std { tls $tls_in_cipher_std
+       }}(Exim $version_number)
+       ${if def:sender_address {(envelope-from <$sender_address>)
+       }}id $message_exim_id${if def:received_for {
+       for $received_for}}
+ ├considering:  ${if def:received_protocol {with $received_protocol }}${if def:tls_in_ver        { ($tls_in_ver)}}${if def:tls_in_cipher_std { tls $tls_in_cipher_std
+       }}(Exim $version_number)
+       ${if def:sender_address {(envelope-from <$sender_address>)
+       }}id $message_exim_id${if def:received_for {
+       for $received_for}}
+ ├───────text:  
+ ├considering: ${if def:received_protocol {with $received_protocol }}${if def:tls_in_ver        { ($tls_in_ver)}}${if def:tls_in_cipher_std { tls $tls_in_cipher_std
+       }}(Exim $version_number)
+       ${if def:sender_address {(envelope-from <$sender_address>)
+       }}id $message_exim_id${if def:received_for {
+       for $received_for}}
  ├──condition: def:received_protocol
  ├─────result: true
  ├──condition: def:received_protocol
  ├─────result: true
-  ┌considering: with $received_protocol}} (Exim $version_number)
+  ╭considering: with $received_protocol }}${if def:tls_in_ver        { ($tls_in_ver)}}${if def:tls_in_cipher_std { tls $tls_in_cipher_std
+       }}(Exim $version_number)
+       ${if def:sender_address {(envelope-from <$sender_address>)
+       }}id $message_exim_id${if def:received_for {
+       for $received_for}}
+  ├───────text: with 
+  ├considering: $received_protocol }}${if def:tls_in_ver        { ($tls_in_ver)}}${if def:tls_in_cipher_std { tls $tls_in_cipher_std
+       }}(Exim $version_number)
+       ${if def:sender_address {(envelope-from <$sender_address>)
+       }}id $message_exim_id${if def:received_for {
+       for $received_for}}
+  ├considering:  }}${if def:tls_in_ver        { ($tls_in_ver)}}${if def:tls_in_cipher_std { tls $tls_in_cipher_std
+       }}(Exim $version_number)
        ${if def:sender_address {(envelope-from <$sender_address>)
        }}id $message_exim_id${if def:received_for {
        for $received_for}}
        ${if def:sender_address {(envelope-from <$sender_address>)
        }}id $message_exim_id${if def:received_for {
        for $received_for}}
-  ├──expanding: with $received_protocol
-  └─────result: with local
+  ├───────text:  
+  ├considering: }}${if def:tls_in_ver        { ($tls_in_ver)}}${if def:tls_in_cipher_std { tls $tls_in_cipher_std
+       }}(Exim $version_number)
+       ${if def:sender_address {(envelope-from <$sender_address>)
+       }}id $message_exim_id${if def:received_for {
+       for $received_for}}
+  ├──expanding: with $received_protocol 
+  ╰─────result: with local 
+ ├───item-res: with local 
+ ├considering: ${if def:tls_in_ver        { ($tls_in_ver)}}${if def:tls_in_cipher_std { tls $tls_in_cipher_std
+       }}(Exim $version_number)
+       ${if def:sender_address {(envelope-from <$sender_address>)
+       }}id $message_exim_id${if def:received_for {
+       for $received_for}}
+       }}id $message_exim_id${if def:received_for {
+       for $received_for}}
+  ├──expanding:  ($tls_in_ver)
+  ├─────result:  ()
+  ╰───skipping: result is not used
+ ├───item-res: 
+ ├considering: ${if def:tls_in_cipher_std { tls $tls_in_cipher_std
+       }}(Exim $version_number)
+       ${if def:sender_address {(envelope-from <$sender_address>)
+       }}id $message_exim_id${if def:received_for {
+       for $received_for}}
+ ├──condition: def:tls_in_cipher_std
+ ├─────result: false
+  ╭───scanning:  tls $tls_in_cipher_std
+       }}(Exim $version_number)
+       ${if def:sender_address {(envelope-from <$sender_address>)
+       }}id $message_exim_id${if def:received_for {
+       for $received_for}}
+  ├───────text:  tls 
+  ├───scanning: $tls_in_cipher_std
+       }}(Exim $version_number)
+       ${if def:sender_address {(envelope-from <$sender_address>)
+       }}id $message_exim_id${if def:received_for {
+       for $received_for}}
+  ├───scanning: 
+       }}(Exim $version_number)
+       ${if def:sender_address {(envelope-from <$sender_address>)
+       }}id $message_exim_id${if def:received_for {
+       for $received_for}}
+  ├───────text: 
+       
+  ├───scanning: }}(Exim $version_number)
+       ${if def:sender_address {(envelope-from <$sender_address>)
+       }}id $message_exim_id${if def:received_for {
+       for $received_for}}
+  ├──expanding:  tls $tls_in_cipher_std
+       
+  ├─────result:  tls 
+       
+  ╰───skipping: result is not used
+ ├───item-res: 
+ ├considering: (Exim $version_number)
+       ${if def:sender_address {(envelope-from <$sender_address>)
+       }}id $message_exim_id${if def:received_for {
+       for $received_for}}
+ ├───────text: (Exim 
+ ├considering: $version_number)
+       ${if def:sender_address {(envelope-from <$sender_address>)
+       }}id $message_exim_id${if def:received_for {
+       for $received_for}}
+ ├considering: )
+       ${if def:sender_address {(envelope-from <$sender_address>)
+       }}id $message_exim_id${if def:received_for {
+       for $received_for}}
+ ├───────text: )
+       
+ ├considering: ${if def:sender_address {(envelope-from <$sender_address>)
+       }}id $message_exim_id${if def:received_for {
+       for $received_for}}
  ├──condition: def:sender_address
  ├─────result: true
  ├──condition: def:sender_address
  ├─────result: true
-  ┌considering: (envelope-from <$sender_address>)
+  ╭considering: (envelope-from <$sender_address>)
+       }}id $message_exim_id${if def:received_for {
+       for $received_for}}
+  ├───────text: (envelope-from <
+  ├considering: $sender_address>)
+       }}id $message_exim_id${if def:received_for {
+       for $received_for}}
+  ├considering: >)
        }}id $message_exim_id${if def:received_for {
        for $received_for}}
        }}id $message_exim_id${if def:received_for {
        for $received_for}}
+  ├───────text: >)
+       
+  ├considering: }}id $message_exim_id${if def:received_for {
+       for $received_for}}
   ├──expanding: (envelope-from <$sender_address>)
        
   ├──expanding: (envelope-from <$sender_address>)
        
-  â\94\94─────result: (envelope-from <CALLER@test.ex>)
+  â\95°─────result: (envelope-from <CALLER@test.ex>)
        
        
+ ├───item-res: (envelope-from <CALLER@test.ex>)
+       
+ ├considering: id $message_exim_id${if def:received_for {
+       for $received_for}}
+ ├───────text: id 
+ ├considering: $message_exim_id${if def:received_for {
+       for $received_for}}
+ ├considering: ${if def:received_for {
+       for $received_for}}
  ├──condition: def:received_for
  ├─────result: false
  ├──condition: def:received_for
  ├─────result: false
-  â\94\8c───scanning: 
+  â\95­───scanning: 
        for $received_for}}
        for $received_for}}
+  ├───────text: 
+       for 
+  ├───scanning: $received_for}}
+  ├───scanning: }}
   ├──expanding: 
        for $received_for
   ├─────result: 
        for 
   ├──expanding: 
        for $received_for
   ├─────result: 
        for 
-  └───skipping: result is not used
+  ╰───skipping: result is not used
+ ├───item-res: 
  ├──expanding: Received: ${if def:sender_rcvhost {from $sender_rcvhost
        }{${if def:sender_ident {from ${quote_local_part:$sender_ident} }}${if def:sender_helo_name {(helo=$sender_helo_name)
  ├──expanding: Received: ${if def:sender_rcvhost {from $sender_rcvhost
        }{${if def:sender_ident {from ${quote_local_part:$sender_ident} }}${if def:sender_helo_name {(helo=$sender_helo_name)
-       }}}}by $primary_hostname ${if def:received_protocol {with $received_protocol}} (Exim $version_number)
+       }}}}by $primary_hostname ${if def:received_protocol {with $received_protocol }}${if def:tls_in_ver        { ($tls_in_ver)}}${if def:tls_in_cipher_std { tls $tls_in_cipher_std
+       }}(Exim $version_number)
        ${if def:sender_address {(envelope-from <$sender_address>)
        }}id $message_exim_id${if def:received_for {
        for $received_for}}
        ${if def:sender_address {(envelope-from <$sender_address>)
        }}id $message_exim_id${if def:received_for {
        for $received_for}}
- â\94\94─────result: Received: from CALLER by mail.test.ex with local (Exim x.yz)
+ â\95°─────result: Received: from CALLER by mail.test.ex with local (Exim x.yz)
        (envelope-from <CALLER@test.ex>)
        id 10HmaX-0005vi-00
 >>Generated Received: header line
 P Received: from CALLER by mail.test.ex with local (Exim x.yz)
        (envelope-from <CALLER@test.ex>)
        (envelope-from <CALLER@test.ex>)
        id 10HmaX-0005vi-00
 >>Generated Received: header line
 P Received: from CALLER by mail.test.ex with local (Exim x.yz)
        (envelope-from <CALLER@test.ex>)
-       id 10HmaX-0005vi-00; Tue, 2 Mar 1999 09:44:33 +0000
-calling local_scan(); timeout=300
-local_scan() returned 0 NULL
- ┌considering: ${tod_full}
+       id 10HmaX-0005vi-00;
+       Tue, 2 Mar 1999 09:44:33 +0000
+ ╭considering: ${tod_full}
  ├──expanding: ${tod_full}
  ├──expanding: ${tod_full}
- └─────result: Tue, 2 Mar 1999 09:44:33 +0000
-Writing spool header file: TESTSUITE/spool//input//hdr.pppp
-DSN: Write SPOOL :-dsn_envid NULL
-DSN: Write SPOOL :-dsn_ret 0
-DSN: Flags :0
-DSN: **** SPOOL_OUT - address: |CALLER@test.ex| errorsto: |NULL| orcpt: |NULL| dsn_flags: 0
-DSN: Flags :0
-DSN: **** SPOOL_OUT - address: |usery@test.ex| errorsto: |NULL| orcpt: |NULL| dsn_flags: 0
-DSN: Flags :0
-DSN: **** SPOOL_OUT - address: |userz@test.ex| errorsto: |NULL| orcpt: |NULL| dsn_flags: 0
-DSN: Flags :0
-DSN: **** SPOOL_OUT - address: |rd+CALLER@test.ex| errorsto: |NULL| orcpt: |NULL| dsn_flags: 0
-DSN: Flags :0
-DSN: **** SPOOL_OUT - address: |rd+usery@test.ex| errorsto: |NULL| orcpt: |NULL| dsn_flags: 0
+ ╰─────result: Tue, 2 Mar 1999 09:44:33 +0000
+Writing spool header file: TESTSUITE/spool//input//hdr.10HmaX-0005vi-00
+DSN: **** SPOOL_OUT - address: <CALLER@test.ex> errorsto: <NULL> orcpt: <NULL> dsn_flags: 0x0
+DSN: **** SPOOL_OUT - address: <usery@test.ex> errorsto: <NULL> orcpt: <NULL> dsn_flags: 0x0
+DSN: **** SPOOL_OUT - address: <userz@test.ex> errorsto: <NULL> orcpt: <NULL> dsn_flags: 0x0
+DSN: **** SPOOL_OUT - address: <rd+CALLER@test.ex> errorsto: <NULL> orcpt: <NULL> dsn_flags: 0x0
+DSN: **** SPOOL_OUT - address: <rd+usery@test.ex> errorsto: <NULL> orcpt: <NULL> dsn_flags: 0x0
 Renaming spool header file: TESTSUITE/spool//input//10HmaX-0005vi-00-H
 Size of headers = sss
 LOG: MAIN
   <= CALLER@test.ex U=CALLER P=local S=sss
 created log directory TESTSUITE/spool/log
 search_tidyup called
 Renaming spool header file: TESTSUITE/spool//input//10HmaX-0005vi-00-H
 Size of headers = sss
 LOG: MAIN
   <= CALLER@test.ex U=CALLER P=local S=sss
 created log directory TESTSUITE/spool/log
 search_tidyup called
-exec TESTSUITE/eximdir/exim -DEXIM_PATH=TESTSUITE/eximdir/exim -C TESTSUITE/test-config -d=0xfbb95dfd -odi -Mc 10HmaX-0005vi-00
+exec TESTSUITE/eximdir/exim -DEXIM_PATH=TESTSUITE/eximdir/exim -C TESTSUITE/test-config -d=0xf7715dfd -MCd local-accept-delivery -odi -Mc 10HmaX-0005vi-00
 Exim version x.yz ....
 changed uid/gid: forcing real = effective
   uid=uuuu gid=EXIM_GID pid=pppp
 Exim version x.yz ....
 changed uid/gid: forcing real = effective
   uid=uuuu gid=EXIM_GID pid=pppp
+adding SSLKEYLOGFILE=TESTSUITE/spool/sslkeys
 configuration file is TESTSUITE/test-config
 trusted user
 admin user
 configuration file is TESTSUITE/test-config
 trusted user
 admin user
-DSN: r1 propagating DSN
-DSN: r2 propagating DSN
-DSN: r3 propagating DSN
-DSN: r4 propagating DSN
-DSN: r5 propagating DSN
+dropping to exim gid; retaining priv uid
 seeking password data for user "CALLER": cache not available
 getpwnam() succeeded uid=CALLER_UID gid=CALLER_GID
 seeking password data for user "CALLER": using cached result
 seeking password data for user "CALLER": cache not available
 getpwnam() succeeded uid=CALLER_UID gid=CALLER_GID
 seeking password data for user "CALLER": using cached result
@@ -187,7 +404,7 @@ reading spool file 10HmaX-0005vi-00-H
 user=CALLER uid=CALLER_UID gid=CALLER_GID sender=CALLER@test.ex
 sender_local=1 ident=CALLER
 Non-recipients:
 user=CALLER uid=CALLER_UID gid=CALLER_GID sender=CALLER@test.ex
 sender_local=1 ident=CALLER
 Non-recipients:
-Empty Tree
+ Empty Tree
 ---- End of tree ----
 recipients_count=5
 **** SPOOL_IN - No additional fields
 ---- End of tree ----
 recipients_count=5
 **** SPOOL_IN - No additional fields
@@ -195,54 +412,53 @@ recipients_count=5
 **** SPOOL_IN - No additional fields
 **** SPOOL_IN - No additional fields
 **** SPOOL_IN - No additional fields
 **** SPOOL_IN - No additional fields
 **** SPOOL_IN - No additional fields
 **** SPOOL_IN - No additional fields
-body_linecount=0 message_linecount=6
-DSN: set orcpt: NULL  flags: 0
-DSN: set orcpt: NULL  flags: 0
-DSN: set orcpt: NULL  flags: 0
-DSN: set orcpt: NULL  flags: 0
-DSN: set orcpt: NULL  flags: 0
+body_linecount=0 message_linecount=7
+DSN: set orcpt:   flags: 0x0
+DSN: set orcpt:   flags: 0x0
+DSN: set orcpt:   flags: 0x0
+DSN: set orcpt:   flags: 0x0
+DSN: set orcpt:   flags: 0x0
 Delivery address list:
   CALLER@test.ex 
   usery@test.ex 
   userz@test.ex 
   rd+CALLER@test.ex 
   rd+usery@test.ex 
 Delivery address list:
   CALLER@test.ex 
   usery@test.ex 
   userz@test.ex 
   rd+CALLER@test.ex 
   rd+usery@test.ex 
-locking TESTSUITE/spool/db/retry.lockfile
-locked  TESTSUITE/spool/db/retry.lockfile
-EXIM_DBOPEN: file <TESTSUITE/spool/db/retry> dir <TESTSUITE/spool/db> flags=O_RDONLY
-returned from EXIM_DBOPEN: (nil)
-ensuring TESTSUITE/spool/db/retry.lockfile is owned by exim
-failed to open DB file TESTSUITE/spool/db/retry.lockfile: No such file or directory
+ locking TESTSUITE/spool/db/retry.lockfile
+ locked  TESTSUITE/spool/db/retry.lockfile
+ EXIM_DBOPEN: file <TESTSUITE/spool/db/retry> dir <TESTSUITE/spool/db> flags=O_RDONLY
+ returned from EXIM_DBOPEN: (nil)
+ failed to open DB file TESTSUITE/spool/db/retry: No such file or directory
 no retry data available
 >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
 Considering: CALLER@test.ex
 unique = CALLER@test.ex
 no retry data available
 >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
 Considering: CALLER@test.ex
 unique = CALLER@test.ex
-no domain retry record
-no address retry record
+no   domain  retry record
+no   address retry record
 CALLER@test.ex: queued for routing
 >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
 Considering: usery@test.ex
 unique = usery@test.ex
 CALLER@test.ex: queued for routing
 >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
 Considering: usery@test.ex
 unique = usery@test.ex
-no domain retry record
-no address retry record
+no   domain  retry record
+no   address retry record
 usery@test.ex: queued for routing
 >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
 Considering: userz@test.ex
 unique = userz@test.ex
 usery@test.ex: queued for routing
 >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
 Considering: userz@test.ex
 unique = userz@test.ex
-no domain retry record
-no address retry record
+no   domain  retry record
+no   address retry record
 userz@test.ex: queued for routing
 >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
 Considering: rd+CALLER@test.ex
 unique = rd+CALLER@test.ex
 userz@test.ex: queued for routing
 >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
 Considering: rd+CALLER@test.ex
 unique = rd+CALLER@test.ex
-no domain retry record
-no address retry record
+no   domain  retry record
+no   address retry record
 rd+CALLER@test.ex: queued for routing
 >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
 Considering: rd+usery@test.ex
 unique = rd+usery@test.ex
 rd+CALLER@test.ex: queued for routing
 >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
 Considering: rd+usery@test.ex
 unique = rd+usery@test.ex
-no domain retry record
-no address retry record
+no   domain  retry record
+no   address retry record
 rd+usery@test.ex: queued for routing
 >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
 routing rd+usery@test.ex
 rd+usery@test.ex: queued for routing
 >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
 routing rd+usery@test.ex
@@ -272,12 +488,15 @@ local_part=rd+usery domain=test.ex
 stripped prefix rd+
 checking local_parts
 usery in "usery"? yes (matched "usery")
 stripped prefix rd+
 checking local_parts
 usery in "usery"? yes (matched "usery")
- ┌considering: /non-exist/$domain
+ ╭considering: /non-exist/$domain
+ ├───────text: /non-exist/
+ ├considering: $domain
  ├──expanding: /non-exist/$domain
  ├──expanding: /non-exist/$domain
- └─────result: /non-exist/test.ex
+ ╰─────result: /non-exist/test.ex
+            ╰──(tainted)
 calling r5 router
 calling r5 router
-rda_interpret (string): TESTSUITE/test-mail/junk
-expanded: TESTSUITE/test-mail/junk
+rda_interpret (string): 'TESTSUITE/test-mail/junk'
+expanded: 'TESTSUITE/test-mail/junk'
 file is not a filter file
 parse_forward_list: TESTSUITE/test-mail/junk
 extract item: TESTSUITE/test-mail/junk
 file is not a filter file
 parse_forward_list: TESTSUITE/test-mail/junk
 extract item: TESTSUITE/test-mail/junk
@@ -311,12 +530,15 @@ local_part=rd+CALLER domain=test.ex
 stripped prefix rd+
 checking local_parts
 CALLER in "CALLER"? yes (matched "CALLER")
 stripped prefix rd+
 checking local_parts
 CALLER in "CALLER"? yes (matched "CALLER")
- ┌considering: /non-exist/$local_part
+ ╭considering: /non-exist/$local_part
+ ├───────text: /non-exist/
+ ├considering: $local_part
  ├──expanding: /non-exist/$local_part
  ├──expanding: /non-exist/$local_part
- └─────result: /non-exist/CALLER
+ ╰─────result: /non-exist/CALLER
+            ╰──(tainted)
 calling r4 router
 calling r4 router
-rda_interpret (string): TESTSUITE/test-mail/junk
-expanded: TESTSUITE/test-mail/junk
+rda_interpret (string): 'TESTSUITE/test-mail/junk'
+expanded: 'TESTSUITE/test-mail/junk'
 file is not a filter file
 parse_forward_list: TESTSUITE/test-mail/junk
 extract item: TESTSUITE/test-mail/junk
 file is not a filter file
 parse_forward_list: TESTSUITE/test-mail/junk
 extract item: TESTSUITE/test-mail/junk
@@ -344,9 +566,12 @@ r2 router skipped: local_parts mismatch
 local_part=userz domain=test.ex
 checking local_parts
 userz in "userz"? yes (matched "userz")
 local_part=userz domain=test.ex
 checking local_parts
 userz in "userz"? yes (matched "userz")
- ┌considering: /non-exist/$domain
+ ╭considering: /non-exist/$domain
+ ├───────text: /non-exist/
+ ├considering: $domain
  ├──expanding: /non-exist/$domain
  ├──expanding: /non-exist/$domain
- └─────result: /non-exist/test.ex
+ ╰─────result: /non-exist/test.ex
+            ╰──(tainted)
 calling r3 router
 r3 router called for userz@test.ex
   domain = test.ex
 calling r3 router
 r3 router called for userz@test.ex
   domain = test.ex
@@ -354,7 +579,7 @@ set transport t2
 queued for t2 transport: local_part = userz
 domain = test.ex
   errors_to=NULL
 queued for t2 transport: local_part = userz
 domain = test.ex
   errors_to=NULL
-  domain_data=NULL localpart_data=NULL
+  domain_data=NULL local_part_data=userz
 routed by r3 router
   envelope to: userz@test.ex
   transport: t2
 routed by r3 router
   envelope to: userz@test.ex
   transport: t2
@@ -369,9 +594,12 @@ r1 router skipped: local_parts mismatch
 local_part=usery domain=test.ex
 checking local_parts
 usery in "usery"? yes (matched "usery")
 local_part=usery domain=test.ex
 checking local_parts
 usery in "usery"? yes (matched "usery")
- ┌considering: /non-exist/$domain
+ ╭considering: /non-exist/$domain
+ ├───────text: /non-exist/
+ ├considering: $domain
  ├──expanding: /non-exist/$domain
  ├──expanding: /non-exist/$domain
- └─────result: /non-exist/test.ex
+ ╰─────result: /non-exist/test.ex
+            ╰──(tainted)
 calling r2 router
 r2 router called for usery@test.ex
   domain = test.ex
 calling r2 router
 r2 router called for usery@test.ex
   domain = test.ex
@@ -379,7 +607,7 @@ set transport t1
 queued for t1 transport: local_part = usery
 domain = test.ex
   errors_to=NULL
 queued for t1 transport: local_part = usery
 domain = test.ex
   errors_to=NULL
-  domain_data=NULL localpart_data=NULL
+  domain_data=NULL local_part_data=usery
 routed by r2 router
   envelope to: usery@test.ex
   transport: t1
 routed by r2 router
   envelope to: usery@test.ex
   transport: t1
@@ -389,9 +617,12 @@ routing CALLER@test.ex
 local_part=CALLER domain=test.ex
 checking local_parts
 CALLER in "CALLER"? yes (matched "CALLER")
 local_part=CALLER domain=test.ex
 checking local_parts
 CALLER in "CALLER"? yes (matched "CALLER")
- ┌considering: /non-exist/$local_part
+ ╭considering: /non-exist/$local_part
+ ├───────text: /non-exist/
+ ├considering: $local_part
  ├──expanding: /non-exist/$local_part
  ├──expanding: /non-exist/$local_part
- └─────result: /non-exist/CALLER
+ ╰─────result: /non-exist/CALLER
+            ╰──(tainted)
 calling r1 router
 r1 router called for CALLER@test.ex
   domain = test.ex
 calling r1 router
 r1 router called for CALLER@test.ex
   domain = test.ex
@@ -399,15 +630,15 @@ set transport t1
 queued for t1 transport: local_part = CALLER
 domain = test.ex
   errors_to=NULL
 queued for t1 transport: local_part = CALLER
 domain = test.ex
   errors_to=NULL
-  domain_data=NULL localpart_data=NULL
+  domain_data=NULL local_part_data=CALLER
 routed by r1 router
   envelope to: CALLER@test.ex
   transport: t1
 routed by r1 router
   envelope to: CALLER@test.ex
   transport: t1
-locking TESTSUITE/spool/db/retry.lockfile
-locked  TESTSUITE/spool/db/retry.lockfile
-EXIM_DBOPEN: file <TESTSUITE/spool/db/retry> dir <TESTSUITE/spool/db> flags=O_RDONLY
-returned from EXIM_DBOPEN: (nil)
-failed to open DB file TESTSUITE/spool/db/retry: No such file or directory
+ locking TESTSUITE/spool/db/retry.lockfile
+ locked  TESTSUITE/spool/db/retry.lockfile
+ EXIM_DBOPEN: file <TESTSUITE/spool/db/retry> dir <TESTSUITE/spool/db> flags=O_RDONLY
+ returned from EXIM_DBOPEN: (nil)
+ failed to open DB file TESTSUITE/spool/db/retry: No such file or directory
 no retry data available
 >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
 Considering: TESTSUITE/test-mail/junk
 no retry data available
 >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
 Considering: TESTSUITE/test-mail/junk
@@ -431,24 +662,27 @@ After routing:
 search_tidyup called
 >>>>>>>>>>>>>>>> Local deliveries >>>>>>>>>>>>>>>>
 --------> TESTSUITE/test-mail/junk <--------
 search_tidyup called
 >>>>>>>>>>>>>>>> Local deliveries >>>>>>>>>>>>>>>>
 --------> TESTSUITE/test-mail/junk <--------
-locking TESTSUITE/spool/db/retry.lockfile
-locked  TESTSUITE/spool/db/retry.lockfile
-EXIM_DBOPEN: file <TESTSUITE/spool/db/retry> dir <TESTSUITE/spool/db> flags=O_RDONLY
-returned from EXIM_DBOPEN: (nil)
-failed to open DB file TESTSUITE/spool/db/retry: No such file or directory
+ locking TESTSUITE/spool/db/retry.lockfile
+ locked  TESTSUITE/spool/db/retry.lockfile
+ EXIM_DBOPEN: file <TESTSUITE/spool/db/retry> dir <TESTSUITE/spool/db> flags=O_RDONLY
+ returned from EXIM_DBOPEN: (nil)
+ failed to open DB file TESTSUITE/spool/db/retry: No such file or directory
 no retry data available
 no retry data available
- ┌considering: /non-exist/$local_part
+ ╭considering: /non-exist/$local_part
+ ├───────text: /non-exist/
+ ├considering: $local_part
  ├──expanding: /non-exist/$local_part
  ├──expanding: /non-exist/$local_part
- └─────result: /non-exist/usery
+ ╰─────result: /non-exist/usery
+            ╰──(tainted)
 search_tidyup called
 changed uid/gid: local delivery to TESTSUITE/test-mail/junk <TESTSUITE/test-mail/junk> transport=ft1
   uid=CALLER_UID gid=CALLER_GID pid=pppp
   home=/non-exist/usery current=/
 set_process_info: pppp delivering 10HmaX-0005vi-00 to TESTSUITE/test-mail/junk using ft1
 appendfile transport entered
 search_tidyup called
 changed uid/gid: local delivery to TESTSUITE/test-mail/junk <TESTSUITE/test-mail/junk> transport=ft1
   uid=CALLER_UID gid=CALLER_GID pid=pppp
   home=/non-exist/usery current=/
 set_process_info: pppp delivering 10HmaX-0005vi-00 to TESTSUITE/test-mail/junk using ft1
 appendfile transport entered
- â\94\8cconsidering: $address_file
+ â\95­considering: $address_file
  ├──expanding: $address_file
  ├──expanding: $address_file
- â\94\94─────result: TESTSUITE/test-mail/junk
+ â\95°─────result: TESTSUITE/test-mail/junk
 appendfile: mode=600 notify_comsat=0 quota=0 warning=0
   file=TESTSUITE/test-mail/junk format=unix
   message_prefix=From ${if def:return_path{$return_path}{MAILER-DAEMON}} ${tod_bsdinbox}\n
 appendfile: mode=600 notify_comsat=0 quota=0 warning=0
   file=TESTSUITE/test-mail/junk format=unix
   message_prefix=From ${if def:return_path{$return_path}{MAILER-DAEMON}} ${tod_bsdinbox}\n
@@ -460,23 +694,44 @@ hitch name: TESTSUITE/test-mail/junk.lock.test.ex.dddddddd.pppppppp
 lock file created
 mailbox TESTSUITE/test-mail/junk is locked
 writing to file TESTSUITE/test-mail/junk
 lock file created
 mailbox TESTSUITE/test-mail/junk is locked
 writing to file TESTSUITE/test-mail/junk
- ┌considering: From ${if def:return_path{$return_path}{MAILER-DAEMON}} ${tod_bsdinbox}
+ ╭considering: From ${if def:return_path{$return_path}{MAILER-DAEMON}} ${tod_bsdinbox}
+ ├───────text: From 
+ ├considering: ${if def:return_path{$return_path}{MAILER-DAEMON}} ${tod_bsdinbox}
  
  ├──condition: def:return_path
  ├─────result: true
  
  ├──condition: def:return_path
  ├─────result: true
-  ┌considering: $return_path}{MAILER-DAEMON}} ${tod_bsdinbox}
+  ╭considering: $return_path}{MAILER-DAEMON}} ${tod_bsdinbox}
+  
+  ├considering: }{MAILER-DAEMON}} ${tod_bsdinbox}
   
   ├──expanding: $return_path
   
   ├──expanding: $return_path
-  └─────result: CALLER@test.ex
-  ┌───scanning: MAILER-DAEMON}} ${tod_bsdinbox}
+  ╰─────result: CALLER@test.ex
+             ╰──(tainted)
+  ╭───scanning: MAILER-DAEMON}} ${tod_bsdinbox}
+  
+  ├───────text: MAILER-DAEMON
+  ├───scanning: }} ${tod_bsdinbox}
   
   ├──expanding: MAILER-DAEMON
   ├─────result: MAILER-DAEMON
   
   ├──expanding: MAILER-DAEMON
   ├─────result: MAILER-DAEMON
-  └───skipping: result is not used
+  ╰───skipping: result is not used
+ ├───item-res: CALLER@test.ex
+            ╰──(tainted)
+ ├considering:  ${tod_bsdinbox}
+ ├───────text:  
+ ├considering: ${tod_bsdinbox}
+ ├considering: 
+ ├───────text: 
  ├──expanding: From ${if def:return_path{$return_path}{MAILER-DAEMON}} ${tod_bsdinbox}
  
  ├──expanding: From ${if def:return_path{$return_path}{MAILER-DAEMON}} ${tod_bsdinbox}
  
- â\94\94─────result: From CALLER@test.ex Tue Mar 02 09:44:33 1999
+ â\95°─────result: From CALLER@test.ex Tue Mar 02 09:44:33 1999
  
  
+            ╰──(tainted)
 writing data block fd=dddd size=sss timeout=0
 cannot use sendfile for body: spoolfile not wireformat
 writing data block fd=dddd size=sss timeout=0
 writing data block fd=dddd size=sss timeout=0
 cannot use sendfile for body: spoolfile not wireformat
 writing data block fd=dddd size=sss timeout=0
@@ -491,11 +746,11 @@ rd+usery@test.ex: children all complete
 LOG: MAIN
   => TESTSUITE/test-mail/junk <rd+usery@test.ex> R=r5 T=ft1
 --------> TESTSUITE/test-mail/junk <--------
 LOG: MAIN
   => TESTSUITE/test-mail/junk <rd+usery@test.ex> R=r5 T=ft1
 --------> TESTSUITE/test-mail/junk <--------
-locking TESTSUITE/spool/db/retry.lockfile
-locked  TESTSUITE/spool/db/retry.lockfile
-EXIM_DBOPEN: file <TESTSUITE/spool/db/retry> dir <TESTSUITE/spool/db> flags=O_RDONLY
-returned from EXIM_DBOPEN: (nil)
-failed to open DB file TESTSUITE/spool/db/retry: No such file or directory
+ locking TESTSUITE/spool/db/retry.lockfile
+ locked  TESTSUITE/spool/db/retry.lockfile
+ EXIM_DBOPEN: file <TESTSUITE/spool/db/retry> dir <TESTSUITE/spool/db> flags=O_RDONLY
+ returned from EXIM_DBOPEN: (nil)
+ failed to open DB file TESTSUITE/spool/db/retry: No such file or directory
 no retry data available
 search_tidyup called
 changed uid/gid: local delivery to TESTSUITE/test-mail/junk <TESTSUITE/test-mail/junk> transport=ft1
 no retry data available
 search_tidyup called
 changed uid/gid: local delivery to TESTSUITE/test-mail/junk <TESTSUITE/test-mail/junk> transport=ft1
@@ -503,9 +758,9 @@ changed uid/gid: local delivery to TESTSUITE/test-mail/junk <TESTSUITE/test-mail
   home=/non-exist/CALLER current=/
 set_process_info: pppp delivering 10HmaX-0005vi-00 to TESTSUITE/test-mail/junk using ft1
 appendfile transport entered
   home=/non-exist/CALLER current=/
 set_process_info: pppp delivering 10HmaX-0005vi-00 to TESTSUITE/test-mail/junk using ft1
 appendfile transport entered
- â\94\8cconsidering: $address_file
+ â\95­considering: $address_file
  ├──expanding: $address_file
  ├──expanding: $address_file
- â\94\94─────result: TESTSUITE/test-mail/junk
+ â\95°─────result: TESTSUITE/test-mail/junk
 appendfile: mode=600 notify_comsat=0 quota=0 warning=0
   file=TESTSUITE/test-mail/junk format=unix
   message_prefix=From ${if def:return_path{$return_path}{MAILER-DAEMON}} ${tod_bsdinbox}\n
 appendfile: mode=600 notify_comsat=0 quota=0 warning=0
   file=TESTSUITE/test-mail/junk format=unix
   message_prefix=From ${if def:return_path{$return_path}{MAILER-DAEMON}} ${tod_bsdinbox}\n
@@ -517,23 +772,44 @@ hitch name: TESTSUITE/test-mail/junk.lock.test.ex.dddddddd.pppppppp
 lock file created
 mailbox TESTSUITE/test-mail/junk is locked
 writing to file TESTSUITE/test-mail/junk
 lock file created
 mailbox TESTSUITE/test-mail/junk is locked
 writing to file TESTSUITE/test-mail/junk
- ┌considering: From ${if def:return_path{$return_path}{MAILER-DAEMON}} ${tod_bsdinbox}
+ ╭considering: From ${if def:return_path{$return_path}{MAILER-DAEMON}} ${tod_bsdinbox}
+ ├───────text: From 
+ ├considering: ${if def:return_path{$return_path}{MAILER-DAEMON}} ${tod_bsdinbox}
  
  ├──condition: def:return_path
  ├─────result: true
  
  ├──condition: def:return_path
  ├─────result: true
-  ┌considering: $return_path}{MAILER-DAEMON}} ${tod_bsdinbox}
+  ╭considering: $return_path}{MAILER-DAEMON}} ${tod_bsdinbox}
+  
+  ├considering: }{MAILER-DAEMON}} ${tod_bsdinbox}
   
   ├──expanding: $return_path
   
   ├──expanding: $return_path
-  └─────result: CALLER@test.ex
-  ┌───scanning: MAILER-DAEMON}} ${tod_bsdinbox}
+  ╰─────result: CALLER@test.ex
+             ╰──(tainted)
+  ╭───scanning: MAILER-DAEMON}} ${tod_bsdinbox}
+  
+  ├───────text: MAILER-DAEMON
+  ├───scanning: }} ${tod_bsdinbox}
   
   ├──expanding: MAILER-DAEMON
   ├─────result: MAILER-DAEMON
   
   ├──expanding: MAILER-DAEMON
   ├─────result: MAILER-DAEMON
-  └───skipping: result is not used
+  ╰───skipping: result is not used
+ ├───item-res: CALLER@test.ex
+            ╰──(tainted)
+ ├considering:  ${tod_bsdinbox}
+ ├───────text:  
+ ├considering: ${tod_bsdinbox}
+ ├considering: 
+ ├───────text: 
  ├──expanding: From ${if def:return_path{$return_path}{MAILER-DAEMON}} ${tod_bsdinbox}
  
  ├──expanding: From ${if def:return_path{$return_path}{MAILER-DAEMON}} ${tod_bsdinbox}
  
- â\94\94─────result: From CALLER@test.ex Tue Mar 02 09:44:33 1999
+ â\95°─────result: From CALLER@test.ex Tue Mar 02 09:44:33 1999
  
  
+            ╰──(tainted)
 writing data block fd=dddd size=sss timeout=0
 cannot use sendfile for body: spoolfile not wireformat
 writing data block fd=dddd size=sss timeout=0
 writing data block fd=dddd size=sss timeout=0
 cannot use sendfile for body: spoolfile not wireformat
 writing data block fd=dddd size=sss timeout=0
@@ -548,11 +824,11 @@ rd+CALLER@test.ex: children all complete
 LOG: MAIN
   => TESTSUITE/test-mail/junk <rd+CALLER@test.ex> R=r4 T=ft1
 --------> CALLER@test.ex <--------
 LOG: MAIN
   => TESTSUITE/test-mail/junk <rd+CALLER@test.ex> R=r4 T=ft1
 --------> CALLER@test.ex <--------
-locking TESTSUITE/spool/db/retry.lockfile
-locked  TESTSUITE/spool/db/retry.lockfile
-EXIM_DBOPEN: file <TESTSUITE/spool/db/retry> dir <TESTSUITE/spool/db> flags=O_RDONLY
-returned from EXIM_DBOPEN: (nil)
-failed to open DB file TESTSUITE/spool/db/retry: No such file or directory
+ locking TESTSUITE/spool/db/retry.lockfile
+ locked  TESTSUITE/spool/db/retry.lockfile
+ EXIM_DBOPEN: file <TESTSUITE/spool/db/retry> dir <TESTSUITE/spool/db> flags=O_RDONLY
+ returned from EXIM_DBOPEN: (nil)
+ failed to open DB file TESTSUITE/spool/db/retry: No such file or directory
 no retry data available
 search_tidyup called
 changed uid/gid: local delivery to CALLER <CALLER@test.ex> transport=t1
 no retry data available
 search_tidyup called
 changed uid/gid: local delivery to CALLER <CALLER@test.ex> transport=t1
@@ -574,15 +850,18 @@ CALLER@test.ex delivered
 LOG: MAIN
   => CALLER <CALLER@test.ex> R=r1 T=t1
 --------> usery@test.ex <--------
 LOG: MAIN
   => CALLER <CALLER@test.ex> R=r1 T=t1
 --------> usery@test.ex <--------
-locking TESTSUITE/spool/db/retry.lockfile
-locked  TESTSUITE/spool/db/retry.lockfile
-EXIM_DBOPEN: file <TESTSUITE/spool/db/retry> dir <TESTSUITE/spool/db> flags=O_RDONLY
-returned from EXIM_DBOPEN: (nil)
-failed to open DB file TESTSUITE/spool/db/retry: No such file or directory
+ locking TESTSUITE/spool/db/retry.lockfile
+ locked  TESTSUITE/spool/db/retry.lockfile
+ EXIM_DBOPEN: file <TESTSUITE/spool/db/retry> dir <TESTSUITE/spool/db> flags=O_RDONLY
+ returned from EXIM_DBOPEN: (nil)
+ failed to open DB file TESTSUITE/spool/db/retry: No such file or directory
 no retry data available
 no retry data available
- ┌considering: /non-exist/$local_part
+ ╭considering: /non-exist/$local_part
+ ├───────text: /non-exist/
+ ├considering: $local_part
  ├──expanding: /non-exist/$local_part
  ├──expanding: /non-exist/$local_part
- └─────result: /non-exist/usery
+ ╰─────result: /non-exist/usery
+            ╰──(tainted)
 search_tidyup called
 changed uid/gid: local delivery to usery <usery@test.ex> transport=t1
   uid=CALLER_UID gid=CALLER_GID pid=pppp
 search_tidyup called
 changed uid/gid: local delivery to usery <usery@test.ex> transport=t1
   uid=CALLER_UID gid=CALLER_GID pid=pppp
@@ -603,15 +882,18 @@ usery@test.ex delivered
 LOG: MAIN
   => usery <usery@test.ex> R=r2 T=t1
 --------> userz@test.ex <--------
 LOG: MAIN
   => usery <usery@test.ex> R=r2 T=t1
 --------> userz@test.ex <--------
-locking TESTSUITE/spool/db/retry.lockfile
-locked  TESTSUITE/spool/db/retry.lockfile
-EXIM_DBOPEN: file <TESTSUITE/spool/db/retry> dir <TESTSUITE/spool/db> flags=O_RDONLY
-returned from EXIM_DBOPEN: (nil)
-failed to open DB file TESTSUITE/spool/db/retry: No such file or directory
+ locking TESTSUITE/spool/db/retry.lockfile
+ locked  TESTSUITE/spool/db/retry.lockfile
+ EXIM_DBOPEN: file <TESTSUITE/spool/db/retry> dir <TESTSUITE/spool/db> flags=O_RDONLY
+ returned from EXIM_DBOPEN: (nil)
+ failed to open DB file TESTSUITE/spool/db/retry: No such file or directory
 no retry data available
 no retry data available
- ┌considering: /$local_part
+ ╭considering: /$local_part
+ ├───────text: /
+ ├considering: $local_part
  ├──expanding: /$local_part
  ├──expanding: /$local_part
- └─────result: /userz
+ ╰─────result: /userz
+            ╰──(tainted)
 search_tidyup called
 changed uid/gid: local delivery to userz <userz@test.ex> transport=t2
   uid=CALLER_UID gid=CALLER_GID pid=pppp
 search_tidyup called
 changed uid/gid: local delivery to userz <userz@test.ex> transport=t2
   uid=CALLER_UID gid=CALLER_GID pid=pppp
@@ -652,7 +934,7 @@ end of retry processing
 DSN: processing router : r3
 DSN: processing successful delivery address: userz@test.ex
 DSN: Sender_address: CALLER@test.ex
 DSN: processing router : r3
 DSN: processing successful delivery address: userz@test.ex
 DSN: Sender_address: CALLER@test.ex
-DSN: orcpt: NULL  flags: 0
+DSN: orcpt: NULL  flags: 0x0
 DSN: envid: NULL  ret: 0
 DSN: Final recipient: userz@test.ex
 DSN: Remote SMTP server supports DSN: 0
 DSN: envid: NULL  ret: 0
 DSN: Final recipient: userz@test.ex
 DSN: Remote SMTP server supports DSN: 0
@@ -660,7 +942,7 @@ DSN: not sending DSN success message
 DSN: processing router : r2
 DSN: processing successful delivery address: usery@test.ex
 DSN: Sender_address: CALLER@test.ex
 DSN: processing router : r2
 DSN: processing successful delivery address: usery@test.ex
 DSN: Sender_address: CALLER@test.ex
-DSN: orcpt: NULL  flags: 0
+DSN: orcpt: NULL  flags: 0x0
 DSN: envid: NULL  ret: 0
 DSN: Final recipient: usery@test.ex
 DSN: Remote SMTP server supports DSN: 0
 DSN: envid: NULL  ret: 0
 DSN: Final recipient: usery@test.ex
 DSN: Remote SMTP server supports DSN: 0
@@ -668,7 +950,7 @@ DSN: not sending DSN success message
 DSN: processing router : r1
 DSN: processing successful delivery address: CALLER@test.ex
 DSN: Sender_address: CALLER@test.ex
 DSN: processing router : r1
 DSN: processing successful delivery address: CALLER@test.ex
 DSN: Sender_address: CALLER@test.ex
-DSN: orcpt: NULL  flags: 0
+DSN: orcpt: NULL  flags: 0x0
 DSN: envid: NULL  ret: 0
 DSN: Final recipient: CALLER@test.ex
 DSN: Remote SMTP server supports DSN: 0
 DSN: envid: NULL  ret: 0
 DSN: Final recipient: CALLER@test.ex
 DSN: Remote SMTP server supports DSN: 0
@@ -676,7 +958,7 @@ DSN: not sending DSN success message
 DSN: processing router : r4
 DSN: processing successful delivery address: TESTSUITE/test-mail/junk
 DSN: Sender_address: CALLER@test.ex
 DSN: processing router : r4
 DSN: processing successful delivery address: TESTSUITE/test-mail/junk
 DSN: Sender_address: CALLER@test.ex
-DSN: orcpt: NULL  flags: 0
+DSN: orcpt: NULL  flags: 0x0
 DSN: envid: NULL  ret: 0
 DSN: Final recipient: TESTSUITE/test-mail/junk
 DSN: Remote SMTP server supports DSN: 0
 DSN: envid: NULL  ret: 0
 DSN: Final recipient: TESTSUITE/test-mail/junk
 DSN: Remote SMTP server supports DSN: 0
@@ -684,7 +966,7 @@ DSN: not sending DSN success message
 DSN: processing router : r5
 DSN: processing successful delivery address: TESTSUITE/test-mail/junk
 DSN: Sender_address: CALLER@test.ex
 DSN: processing router : r5
 DSN: processing successful delivery address: TESTSUITE/test-mail/junk
 DSN: Sender_address: CALLER@test.ex
-DSN: orcpt: NULL  flags: 0
+DSN: orcpt: NULL  flags: 0x0
 DSN: envid: NULL  ret: 0
 DSN: Final recipient: TESTSUITE/test-mail/junk
 DSN: Remote SMTP server supports DSN: 0
 DSN: envid: NULL  ret: 0
 DSN: Final recipient: TESTSUITE/test-mail/junk
 DSN: Remote SMTP server supports DSN: 0
@@ -692,7 +974,7 @@ DSN: not sending DSN success message
 DSN: processing router : r4
 DSN: processing successful delivery address: rd+CALLER@test.ex
 DSN: Sender_address: CALLER@test.ex
 DSN: processing router : r4
 DSN: processing successful delivery address: rd+CALLER@test.ex
 DSN: Sender_address: CALLER@test.ex
-DSN: orcpt: NULL  flags: 0
+DSN: orcpt: NULL  flags: 0x0
 DSN: envid: NULL  ret: 0
 DSN: Final recipient: rd+CALLER@test.ex
 DSN: Remote SMTP server supports DSN: 0
 DSN: envid: NULL  ret: 0
 DSN: Final recipient: rd+CALLER@test.ex
 DSN: Remote SMTP server supports DSN: 0
@@ -700,7 +982,7 @@ DSN: not sending DSN success message
 DSN: processing router : r5
 DSN: processing successful delivery address: rd+usery@test.ex
 DSN: Sender_address: CALLER@test.ex
 DSN: processing router : r5
 DSN: processing successful delivery address: rd+usery@test.ex
 DSN: Sender_address: CALLER@test.ex
-DSN: orcpt: NULL  flags: 0
+DSN: orcpt: NULL  flags: 0x0
 DSN: envid: NULL  ret: 0
 DSN: Final recipient: rd+usery@test.ex
 DSN: Remote SMTP server supports DSN: 0
 DSN: envid: NULL  ret: 0
 DSN: Final recipient: rd+usery@test.ex
 DSN: Remote SMTP server supports DSN: 0
@@ -710,6 +992,6 @@ LOG: MAIN
 end delivery of 10HmaX-0005vi-00
 search_tidyup called
 search_tidyup called
 end delivery of 10HmaX-0005vi-00
 search_tidyup called
 search_tidyup called
->>>>>>>>>>>>>>>> Exim pid=pppp (main) terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (local-accept-delivery) terminating with rc=0 >>>>>>>>>>>>>>>>
 search_tidyup called
 search_tidyup called
->>>>>>>>>>>>>>>> Exim pid=pppp (main) terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (fresh-exec) terminating with rc=0 >>>>>>>>>>>>>>>>