Re: [exim] ACL problem in 4.64

Top Page
Delete this message
Reply to this message
Author: Magnus Holmgren
Date:  
To: exim-users
Subject: Re: [exim] ACL problem in 4.64
On Friday 22 December 2006 22:56, you stated the following:
> Hello Magnus,
>
> your patch also seems to work for me ("Re: [exim] Bug in Exim 4.64? <
> {$message_size}{200K} returns integer expected"). I will take a look into
> the logfiles later on to see if it will perma fix this.
>
> What exactly does the "yield" query and why did it fix this ?


UTSL. :-)

yield is, in that function, a pointer to a BOOL where the result of the
condition is to be stored. However, if yield is NULL, the result is
unwanted/unneeded, e.g. because we are in the other branch of an ${if ...}
expansion or the second or later branch of an or/and condition and the result
has already been decided. Just eight lines above, yield == NULL is passed as
the "skipping" argument of expand_string_internal, meaning the same thing.
When skipping is true, the contents of expansion variables aren't looked up,
database lookups aren't performed etc., instead "" is returned and only the
syntax is checked. In that situation, requiring an integer probably isn't
such a good idea.

The only alternative fix is to make sure that all expansions return "0"
instead of "" when skipping if they would or could return an integer, I think
I'll commit my fix to CVS now.

-- 
Magnus Holmgren        holmgren@???
                       (No Cc of list mail needed, thanks)


"Exim is better at being younger, whereas sendmail is better for
Scrabble (50 point bonus for clearing your rack)" -- Dave Evans