Don't check that the operands of numeric comparison operators are integers when yield...
authorMagnus Holmgren <holmgren@lysator.liu.se>
Sun, 24 Dec 2006 12:12:05 +0000 (12:12 +0000)
committerMagnus Holmgren <holmgren@lysator.liu.se>
Sun, 24 Dec 2006 12:12:05 +0000 (12:12 +0000)
doc/doc-txt/ChangeLog
src/src/expand.c

index 3e9b5a8a0a8e94b8991f4274803ccd8dee24738f..8c606107d86a6bcba170e07c63292652e738a743 100644 (file)
@@ -1,4 +1,4 @@
-$Cambridge: exim/doc/doc-txt/ChangeLog,v 1.448 2006/12/20 19:57:47 tom Exp $
+$Cambridge: exim/doc/doc-txt/ChangeLog,v 1.449 2006/12/24 12:12:05 magnus Exp $
 
 Change log file for Exim from version 4.21
 -------------------------------------------
 
 Change log file for Exim from version 4.21
 -------------------------------------------
@@ -10,6 +10,10 @@ TK/01 Disable default definition of HAVE_LINUX_SENDFILE. Clashes with
       Linux large file support (_FILE_OFFSET_BITS=64) on older glibc
       versions. (#438)
 
       Linux large file support (_FILE_OFFSET_BITS=64) on older glibc
       versions. (#438)
 
+MH/01 Don't check that the operands of numeric comparison operators are
+      integers when their expansion is in "skipping" mode (fixes bug
+      introduced by 4.64-PH/07).
+
 
 Exim version 4.64
 -----------------
 
 Exim version 4.64
 -----------------
index 7f1515c98c5b50a894c07e743a69312bf0d61ade..2d3f5675413a68fa419f1f9e2f59192a35ee3ba8 100644 (file)
@@ -1,4 +1,4 @@
-/* $Cambridge: exim/src/src/expand.c,v 1.73 2006/12/05 11:35:28 ph10 Exp $ */
+/* $Cambridge: exim/src/src/expand.c,v 1.74 2006/12/24 12:12:05 magnus Exp $ */
 
 /*************************************************
 *     Exim - an Internet mail transport agent    *
 
 /*************************************************
 *     Exim - an Internet mail transport agent    *
@@ -1986,7 +1986,7 @@ switch(cond_type)
     conditions that compare numbers do not start with a letter. This just saves
     checking for them individually. */
 
     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 != NULL)
       {
       num[i] = expand_string_integer(sub[i], FALSE);
       if (expand_string_message != NULL) return NULL;
       {
       num[i] = expand_string_integer(sub[i], FALSE);
       if (expand_string_message != NULL) return NULL;