Bug#1140099: exim4-daemon-heavy: regression in 4.98.2-1+deb13u3 - bare filename in router domains condition no longer treated as implicit lsearch
Terry Roy
tech at futurecourse.com
Fri Jul 10 01:56:07 BST 2026
On 6/20/26 09:41, Andreas Metzler wrote:
> Hello Terry,
>
> using a literal filename and lsearch-ing it are not equivalent, see
> https://www.exim.org/exim-html-current/doc/html/spec_html/ch-domain_host_address_and_local_part_lists.html
> 2.2 and 2.3.
>
> Trivial example:
> ametzler at argenau:/tmp$ head /tmp/inputforlsearch /tmp/exim4.conf.test
> ==> /tmp/inputforlsearch <==
> ubuntu.com:
> debian.org:
> ==> /tmp/exim4.conf.test <==
> domainlist works_b = lsearch;/tmp/inputforlsearch
> domainlist fails_b = /tmp/inputforlsearch
> ametzler at argenau:/tmp$ /usr/sbin/exim4 -C /tmp/exim4.conf.test -be '${if match_domain{debian.org}{+works_b}{yes}{no}}'
> yes
> ametzler at argenau:/tmp$ /usr/sbin/exim4 -C /tmp/exim4.conf.test -be '${if match_domain{debian.org}{+fails_b}{yes}{no}}'
> no
>
> A file used as literal filename would use a different format:
> ametzler at argenau:/tmp$ head /tmp/inclusionasfilename /tmp/exim4.conf.test
> ==> /tmp/inclusionasfilename <==
> ubuntu.com
> debian.org
> ==> /tmp/exim4.conf.test <==
> domainlist works_a = /tmp/inclusionasfilename
> ametzler at argenau:/tmp$ /usr/sbin/exim4 -C /tmp/exim4.conf.test -be '${if match_domain{debian.org}{+works_a}{yes}{no}}'
> yes
>
> cu Andreas
Thank you for the clear explanation and the example. I understand now
that the bare filename and lsearch; are not equivalent and never were —
the previous behavior was apparently a tolerated misconfiguration rather
than correct usage. The fix (adding explicit lsearch; prefix) is in
place and working correctly.
Thanks again.
--
Terry
More information about the Pkg-exim4-maintainers
mailing list