[Exim] Exim 3.13 : Bug in parsing senders string?

Top Page
Delete this message
Reply to this message
Author: Terry Edhouse
Date:  
To: exim-users
Subject: [Exim] Exim 3.13 : Bug in parsing senders string?
    I'm running exim 3.13 and as part of controlling who can use some
mailing lists, I have a senders line similar to the following as part of
the forwardfile director's config :

senders = "!${if exists {/usr/mail/lists/test/.invalidusers} \
              {lsearch;/usr/mail/lists/test/.invalidusers}}:\
           *@ohm.york.ac.uk:\
           lsearch;/usr/mail/lists/.validusers:\
           ${if exists {/usr/mail/lists/test/.validusers} \
             {lsearch;/usr/mail/lists/test/.validusers}}:\ 
           ${if exists {/usr/mail/lists/test/.${local_part}.validusers}
\
             {lsearch;/usr/mail/lists/test/.${local_part}.validusers}}"


If the file /usr/mail/lists/test/.validusers exists then everything
works fine. If it does not exist then I get the following error :

LOG: 0 PANIC DIE
failed to open /usr/mail/lists/.validusers: for linear search: No such
file or directory

Note that the file it's complaining about is /usr/mail/lists/.validusers
(which does exist) and not /usr/mail/lists/test/.validusers.

If I change senders to :

senders = "!${if exists {/usr/mail/lists/test/.invalidusers} \
              {lsearch;/usr/mail/lists/test/.invalidusers}}:\
           *@ohm.york.ac.uk:\
           lsearch;/usr/mail/lists/.validusers:\
           ${if exists {/usr/mail/lists/test/.validusers} \
             {lsearch;/usr/mail/lists/test/.validusers}} :\ 
           ${if exists {/usr/mail/lists/test/.${local_part}.validusers}
\
             {lsearch;/usr/mail/lists/test/.${local_part}.validusers}}"


the problem disappears.

The change being the insertion of a space before the colon in the 6th
line.

Can anyone tell if this is valid behaviour (and if so, why?), or a bug?

Terry Edhouse
Department of Electronics
University of York