Schramm, Dominik wrote:
> Hi there, 
> 
> I have a regular expression that is longer than 1024 characters. 
> Can I still use it in a system filter although the maximum string
> length is 1024? 

I only had a glance at this since I'm late for work :P Please take 
everything with a grain of salt as i may have completely missing some 
critical piece of code that makes all the difference.

The 1024 buffer size seems to be present in filter.c for reading single 
words. There doesn't seem to be a line limit of 1024 as such, just for 
single components of those lines.

A regex seems to be considered to be a word and will be limited to 1024 
unsigned chars. I can find no special code for reading regex so I assume 
the normal nextitem call handles it.

Can you split the regex up into multiple components? ie match a common 
bit to all of them and then use the extra differences in other if/then 
statements. That should remove the limit but maybe cause it run slowly.

The rather more risky venture might be to run through filter.c and 
increase the size of all the buffers to 2048 (or some other number you 
deem fit), but that may break things elsewhere. I have no idea if that 
buffer's size carries itself out of the filter and into anything else. 
It may cause the PCRE library to blow up, or possibly even early onset 
male pattern baldness.

Have fun!


-- 
The Exim Manual
http://www.exim.org/docs.html
http://docs.exim.org/current/

-- 
## List details at http://lists.exim.org/mailman/listinfo/exim-users 
## Exim details at http://www.exim.org/
## Please use the Wiki with this list - http://wiki.exim.org/

Reply via email to