nm4 2009/10/14 14:43:40 BST
Modified files:
exim-doc/doc-txt ChangeLog
exim-src/src/lookups lsearch.c
Log:
Fix issue with long lines with comments in lsearch. fixes: #894
Revision Changes Path
1.567 +2 -0 exim/exim-doc/doc-txt/ChangeLog
1.9 +5 -1 exim/exim-src/src/lookups/lsearch.c
Index: ChangeLog
===================================================================
RCS file: /home/cvs/exim/exim-doc/doc-txt/ChangeLog,v
retrieving revision 1.566
retrieving revision 1.567
diff -u -r1.566 -r1.567
--- ChangeLog 14 Oct 2009 11:26:31 -0000 1.566
+++ ChangeLog 14 Oct 2009 13:43:40 -0000 1.567
@@ -1,4 +1,4 @@
-$Cambridge: exim/exim-doc/doc-txt/ChangeLog,v 1.566 2009/10/14 11:26:31 nm4 Exp $
+$Cambridge: exim/exim-doc/doc-txt/ChangeLog,v 1.567 2009/10/14 13:43:40 nm4 Exp $
Change log file for Exim from version 4.21
-------------------------------------------
@@ -103,6 +103,8 @@
NM/17 Changed NOTICE file to remove references to embedded PCRE.
+NM/18 Bugzilla 894: Fix issue with very long lines including comments in lsearch
+
Exim version 4.69
-----------------
Index: lsearch.c
===================================================================
RCS file: /home/cvs/exim/exim-src/src/lookups/lsearch.c,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -r1.8 -r1.9
--- lsearch.c 8 Jan 2007 10:50:19 -0000 1.8
+++ lsearch.c 14 Oct 2009 13:43:40 -0000 1.9
@@ -1,4 +1,4 @@
-/* $Cambridge: exim/exim-src/src/lookups/lsearch.c,v 1.8 2007/01/08 10:50:19 ph10 Exp $ */
+/* $Cambridge: exim/exim-src/src/lookups/lsearch.c,v 1.9 2009/10/14 13:43:40 nm4 Exp $ */
/*************************************************
* Exim - an Internet mail transport agent *
@@ -107,6 +107,7 @@
int ptr, size;
int p = Ustrlen(buffer);
int linekeylength;
+ BOOL this_is_comment;
uschar *yield;
uschar *s = buffer;
@@ -255,6 +256,7 @@
Initialize, and copy the first segment of data. */
+ this_is_comment = FALSE;
size = 100;
ptr = 0;
yield = store_get(size);
@@ -285,11 +287,13 @@
if (last_was_eol)
{
- if (buffer[0] == 0 || buffer[0] == '#') continue;
+ this_is_comment ||= (buffer[0] == 0 || buffer[0] == '#');
+ if (this_is_comment) continue;
if (!isspace((uschar)buffer[0])) break;
while (isspace((uschar)*s)) s++;
*(--s) = ' ';
}
+ if (this_is_comment) continue;
/* Join a physical or logical line continuation onto the result string. */