diff options
author | Nigel Metheringham <nigel@exim.org> | 2009-10-14 13:43:40 +0000 |
---|---|---|
committer | Nigel Metheringham <nigel@exim.org> | 2009-10-14 13:43:40 +0000 |
commit | dbb0bf41ba4d59099476e22f1443f2d18ae1037a (patch) | |
tree | a48f1c99f10d035277ce2d31d8d0d96709b70d0b | |
parent | 830fcfeeaa1be5c0988a7b050bded80e4c70215d (diff) |
Fix issue with long lines with comments in lsearch. fixes: #894
-rw-r--r-- | doc/doc-txt/ChangeLog | 4 | ||||
-rw-r--r-- | src/src/lookups/lsearch.c | 8 |
2 files changed, 9 insertions, 3 deletions
diff --git a/doc/doc-txt/ChangeLog b/doc/doc-txt/ChangeLog index 934bf2aaf..260825c44 100644 --- a/doc/doc-txt/ChangeLog +++ b/doc/doc-txt/ChangeLog @@ -1,4 +1,4 @@ -$Cambridge: exim/doc/doc-txt/ChangeLog,v 1.566 2009/10/14 11:26:31 nm4 Exp $ +$Cambridge: 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/16 Bugzilla 851: Documentation example syntax fix. 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 ----------------- diff --git a/src/src/lookups/lsearch.c b/src/src/lookups/lsearch.c index 4b3c7e233..ba2c673fa 100644 --- a/src/src/lookups/lsearch.c +++ b/src/src/lookups/lsearch.c @@ -1,4 +1,4 @@ -/* $Cambridge: exim/src/src/lookups/lsearch.c,v 1.8 2007/01/08 10:50:19 ph10 Exp $ */ +/* $Cambridge: 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 @@ for (last_was_eol = TRUE; int ptr, size; int p = Ustrlen(buffer); int linekeylength; + BOOL this_is_comment; uschar *yield; uschar *s = buffer; @@ -255,6 +256,7 @@ for (last_was_eol = TRUE; Initialize, and copy the first segment of data. */ + this_is_comment = FALSE; size = 100; ptr = 0; yield = store_get(size); @@ -285,11 +287,13 @@ for (last_was_eol = TRUE; 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. */ |