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.