[exim-dev] [Bug 2565] New: 4.94Rc0: $local_part_verified exp…

Top Page
Delete this message
Reply to this message
Author: admin
Date:  
To: exim-dev
Subject: [exim-dev] [Bug 2565] New: 4.94Rc0: $local_part_verified expansion broken
https://bugs.exim.org/show_bug.cgi?id=2565

            Bug ID: 2565
           Summary: 4.94Rc0: $local_part_verified expansion broken
           Product: Exim
           Version: 4.93
          Hardware: x86
                OS: Linux
            Status: NEW
          Severity: bug
          Priority: medium
         Component: Delivery in general
          Assignee: unallocated@???
          Reporter: eximusers@???
                CC: exim-dev@???


Hello,

when I submit a message with both local and remote destinations
check_local_user on the local_user router does not work properly,
$local_part_verified is empty.

root@argenau:~# exim4 -bP router local_user | grep check
check_local_user
root@argenau:~# mailq
15m   527 1jUROD-000HCE-Hn <ametzler@???>
        D ametzler@???
          ametzler@localhost
logfile: 2020-05-01 10:51:21 1jUROD-000HCE-Hn == ametzler@localhost
R=local_user T=mail_spool defer (-6): mailbox /var/mail/ has wrong uid (0 !=
1001)


Debug log:
10:51:21 66107 --------> local_user router <--------
10:51:21 66107 local_part=ametzler domain=localhost
10:51:21 66107 checking domains
10:51:21 66107 cached yes match for +local_domains
10:51:21 66107 cached lookup data = NULL
10:51:21 66107 localhost in "+local_domains"? yes (matched "+local_domains" -
cached)
10:51:21 66107 checking local_parts
10:51:21 66107 ametzler in "! root"? yes (end of list)
10:51:21 66107 checking for local user
10:51:21 66107 seeking password data for user "ametzler": using cached result
10:51:21 66107 getpwnam() succeeded uid=1001 gid=1001
10:51:21 66107  ╭considering: R: local_user for $local_part@$domain
10:51:21 66107  ├──expanding: R: local_user for $local_part@$domain
10:51:21 66107  ╰─────result: R: local_user for ametzler@localhost
10:51:21 66107             ╰──(tainted)
10:51:21 66107 R: local_user for ametzler@localhost
10:51:21 66107 calling local_user router
10:51:21 66107 local_user router called for ametzler@localhost
10:51:21 66107   domain = localhost
10:51:21 66107 set transport mail_spool
10:51:21 66107 queued for mail_spool transport: local_part = ametzler
10:51:21 66107 domain = localhost
10:51:21 66107   errors_to=NULL
10:51:21 66107   domain_data=NULL localpart_data=NULL
10:51:21 66107 routed by local_user router
10:51:21 66107   envelope to: ametzler@localhost
10:51:21 66107   transport: mail_spool
10:51:21 66107 >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
10:51:21 66107 routing ametzler@???
[...]
10:51:21 66107 >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
10:51:21 66107 After routing:
10:51:21 66107   Local deliveries:
10:51:21 66107     ametzler@localhost
10:51:21 66107   Remote deliveries:
10:51:21 66107     ametzler@???
10:51:21 66107   Failed addresses:
10:51:21 66107   Deferred addresses:
10:51:21 66107 search_tidyup called
10:51:21 66107 >>>>>>>>>>>>>>>> Local deliveries >>>>>>>>>>>>>>>>
10:51:21 66107 --------> ametzler@localhost <--------
10:51:21 66107  locking /var/spool/exim4/db/retry.lockfile
10:51:21 66107  locked  /var/spool/exim4/db/retry.lockfile
10:51:21 66107  EXIM_DBOPEN: file </var/spool/exim4/db/retry> dir
</var/spool/exim4/db> flags=O_RDONLY
10:51:21 66107  returned from EXIM_DBOPEN: 0x5634c44b1bc0
10:51:21 66107  opened hints database /var/spool/exim4/db/retry: flags=O_RDONLY
10:51:21 66107  dbfn_read: key=T:ametzler@localhost
10:51:21 66107 no retry record exists
10:51:21 66107  EXIM_DBCLOSE(0x5634c44b1bc0)
10:51:21 66107  closed hints database and lockfile
10:51:21 66107 search_tidyup called
10:51:21 66107 daemon-accept-delivery forking for delivery-local
10:51:21 66107 daemon-accept-delivery forked for delivery-local: 66109
10:51:21 66109 postfork: delivery-local
10:51:21 66109 changed uid/gid: local delivery to ametzler <ametzler@localhost>
transport=mail_spool
10:51:21 66109   uid=1001 gid=8 pid=66109
10:51:21 66109   auxiliary group list: <none>
10:51:21 66109   home=/home/ametzler current=/home/ametzler
10:51:21 66109 set_process_info: 66109 delivering 1jUROD-000HCE-Hn to ametzler
using mail_spool
10:51:21 66109  ╭considering: T: appendfile for $local_part@$domain
10:51:21 66109  ├──expanding: T: appendfile for $local_part@$domain
10:51:21 66109  ╰─────result: T: appendfile for ametzler@localhost
10:51:21 66109             ╰──(tainted)
10:51:21 66109 T: appendfile for ametzler@localhost
10:51:21 66109 appendfile transport entered
10:51:21 66109  ╭considering: /var/mail/$local_part_verified
10:51:21 66109  ├──expanding: /var/mail/$local_part_verified
10:51:21 66109  ╰─────result: /var/mail/
10:51:21 66109 appendfile: mode=660 notify_comsat=0 quota=0 warning=0
10:51:21 66109   file=/var/mail/ format=unix
10:51:21 66109   message_prefix=From ${if
def:return_path{$return_path}{MAILER-DAEMON}} ${tod_bsdinbox}\n
10:51:21 66109   message_suffix=\n
10:51:21 66109   maildir_use_size_file=no
10:51:21 66109   locking by lockfile fcntl 
10:51:21 66109 lock name: /var/mail/.lock
10:51:21 66109 hitch name: /var/mail/.lock.argenau.bebt.de.5eabe309.0001023d
10:51:21 66109 lock file created
10:51:21 66109 search_tidyup called
10:51:21 66107 mail_spool transport returned DEFER for ametzler@localhost
10:51:21 66107 added retry item for T:ametzler@localhost: errno=-6 more_errno=0
flags=0
10:51:21 66107 post-process ametzler@localhost (1)
10:51:21 66107 LOG: MAIN
10:51:21 66107   == ametzler@localhost R=local_user T=mail_spool defer (-6):
mailbox /var/mail/ has wrong uid (0 != 1001)
10:51:21 66107 >>>>>>>>>>>>>>>> Remote deliveries >>>>>>>>>>>>>>>>
[...]



A "runq" delivers the message successfully. This only happens when the message
has at least two receipients. If I send a message with two local receipients
$local_part_verified seems to be sticky, i.e. we get:
>>>>>>>>>>>>>>>> Local deliveries >>>>>>>>>>>>>>>>

11:10:59 66194 --------> surfonly@localhost <--------
[...]
11:10:59 66196 appendfile transport entered
11:10:59 66196 ╭considering: /var/mail/$local_part_verified
11:10:59 66196 ├──expanding: /var/mail/$local_part_verified
11:10:59 66196 ╰─────result: /var/mail/surfonly
11:10:59 66196 appendfile: mode=660 notify_comsat=0 quota=0 warning=0
11:10:59 66196 file=/var/mail/surfonly format=unix
[...]
11:10:59 66194 --------> ametzler@localhost <--------
11:10:59 66194 locking /var/spool/exim4/db/retry.lockfile
11:10:59 66194 locked /var/spool/exim4/db/retry.lockfile
11:10:59 66194 EXIM_DBOPEN: file </var/spool/exim4/db/retry> dir
</var/spool/exim4/db> flags=O_RDONLY
11:10:59 66194 returned from EXIM_DBOPEN: 0x55e445844bc0
11:10:59 66194 opened hints database /var/spool/exim4/db/retry: flags=O_RDONLY
11:10:59 66194 dbfn_read: key=T:ametzler@localhost
11:10:59 66194 no retry record exists
11:10:59 66194 EXIM_DBCLOSE(0x55e445844bc0)
11:10:59 66194 closed hints database and lockfile
11:10:59 66194 search_tidyup called
11:10:59 66194 daemon-accept-delivery forking for delivery-local
11:10:59 66194 daemon-accept-delivery forked for delivery-local: 66197
11:10:59 66197 postfork: delivery-local
11:10:59 66197 changed uid/gid: local delivery to ametzler <ametzler@localhost>
transport=mail_spool
11:10:59 66197 uid=1001 gid=8 pid=66197
11:10:59 66197 auxiliary group list: <none>
11:10:59 66197 home=/home/ametzler current=/home/ametzler
11:10:59 66197 set_process_info: 66197 delivering 1jURhD-000HDd-Ns to ametzler
using mail_spool
[...]
11:10:59 66197 appendfile transport entered
11:10:59 66197 ╭considering: /var/mail/$local_part_verified
11:10:59 66197 ├──expanding: /var/mail/$local_part_verified
11:10:59 66197 ╰─────result: /var/mail/surfonly
11:10:59 66197 appendfile: mode=660 notify_comsat=0 quota=0 warning=0
11:10:59 66197 file=/var/mail/surfonly format=unix
[...]
11:10:59 66194 LOG: MAIN
11:10:59 66194 == ametzler@localhost R=local_user T=mail_spool defer (-6):
mailbox /var/mail/surfonly has wrong uid (1003 != 1001)

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