Re: [exim] ACL problem in 4.64

Top Page
Delete this message
Reply to this message
Author: Magnus Holmgren
Date:  
To: exim-users
New-Topics: Re: [exim] time to release 4.65 (was: ACL problem in 4.64)
Subject: Re: [exim] ACL problem in 4.64
On Thursday 21 December 2006 10:53, Jakob Hirsch wrote:
> Quoting Nicklas Hardman:
> > After upgrading to 4.64 i get
> > "temporarily rejected after DATA: failed to expand ACL string "${if or
> > {{eq {$sender_address_domain}{hb.se}} {>={$message_size}{100k}}}
> > {0}{1}}": integer expected but "" found inside "or{...}" condition"
>
> http://www.exim.org/mail-archives/exim-dev/2006-September/msg00035.html
>
> I hate to say "I knew it"... but, I knew it. :)


I'm not sure exactly what you knew, but ... bug located, and yes, it has
something to do with that bugfix. The bug is that when skipping is true, the
empty string is returned by find_variable(), but eval_condition()
nevertheless checks for an integer. Suggested patch:

--- expand.c    5 Dec 2006 11:35:28 -0000       1.73
+++ expand.c    22 Dec 2006 20:43:37 -0000
@@ -1986,7 +1986,7 @@
     conditions that compare numbers do not start with a letter. This just saves
     checking for them individually. */


-    if (!isalpha(name[0]))
+    if (!isalpha(name[0]) && yield)
       {
       num[i] = expand_string_integer(sub[i], FALSE);
       if (expand_string_message != NULL) return NULL;


-- 
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