[prev in list] [next in list] [prev in thread] [next in thread]
List: procmail
Subject: Re: Restricting length of MATCH?
From: Rik Kabel <rik () netcom ! com>
Date: 1997-10-30 22:27:39
[Download RAW message or body]
era asked:
> ... and so on, something like 60-80 lines of addresses. And bang, I
> get a core dump in my MAILDIR. (The header above was actually grabbed
> out of the core dump with strings(1) ... lots of other interesting
> stuff inside that core image, such as something that looks a lot like
> users at my host with home directories and preferred shells, but I
> digress.)
You get the core dump when you use $MATCH in your logging, and not when
you do the match, yes?
> * ^\/Apparently-To..?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?\
> .?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?
>
> but this is +slightly+ too cumbersome to use in every single recipe
> that contains a \/ -- which is practically all of them, because I want
> to log what happens and on what grounds spam is being identified.
>
> Can anybody come up with something neater? As an aside, it would be
> nice to know if indeed nobody else ever runs into core dumps when you
> massively exceed LINEBUF. (I believe my mail host is actually running
> 3.11pre4 but I think I found the same problem in 3.11pre7 on a
> completely different architecture.)
I use something (very much) like:
:0
* ! ^To:[ ]+\/[^ ].*
* ! ^Apparently-To:[ ]+\/[^ ].*
* ! ^Resent-To:[ ]+\/[^ ].*
{ Missing to handled here }
:0 E
* MATCH ?? ,[ ]
* MATCH ?? ()\/[^,]+,[ ]+[^ ]+
{ TOO="(trimmed) $MATCH" }
:0 E
{ TOO=$MATCH }
This picks up the first two addresses when there is a comma (ignoring
comments) and the only address otherwise, thus carefully avoiding
instantiation of overlong strings in MATCH. My LINEBUF violations ended
when I implemented this.
--
Rik Kabel Old enough to be an adult rik@netcom.com
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic