Mailing List Archive

svn commit: r169770 - /spamassassin/trunk/lib/Mail/SpamAssassin/Conf/Parser.pm
Author: dos
Date: Wed May 11 22:44:08 2005
New Revision: 169770

URL: http://svn.apache.org/viewcvs?rev=169770&view=rev
Log:
check (raw)body/full/uri/head tests for valid delimiters

Modified:
spamassassin/trunk/lib/Mail/SpamAssassin/Conf/Parser.pm

Modified: spamassassin/trunk/lib/Mail/SpamAssassin/Conf/Parser.pm
URL: http://svn.apache.org/viewcvs/spamassassin/trunk/lib/Mail/SpamAssassin/Conf/Parser.pm?rev=169770&r1=169769&r2=169770&view=diff
==============================================================================
--- spamassassin/trunk/lib/Mail/SpamAssassin/Conf/Parser.pm (original)
+++ spamassassin/trunk/lib/Mail/SpamAssassin/Conf/Parser.pm Wed May 11 22:44:08 2005
@@ -743,13 +743,13 @@
$type == $Mail::SpamAssassin::Conf::TYPE_RAWBODY_TESTS ||
$type == $Mail::SpamAssassin::Conf::TYPE_URI_TESTS)
{
- return unless $self->is_regexp_valid($name, $text);
+ return unless $self->is_delimited_regexp_valid($name, $text);
}
if ($type == $Mail::SpamAssassin::Conf::TYPE_HEAD_TESTS)
{
my ($pat) = ($text =~ /^\s*\S+\s*(?:\=|\!)\~\s*(\S.*?\S)\s*$/);
$pat =~ s/\s+\[if-unset:\s+(.+)\]\s*$//;
- return unless $self->is_regexp_valid($name, $pat);
+ return unless $self->is_delimited_regexp_valid($name, $pat);
}
elsif ($type == $Mail::SpamAssassin::Conf::TYPE_META_TESTS)
{
@@ -816,6 +816,17 @@
$self->{conf}->{errors}++;
return 0;
}
+}
+
+sub is_delimited_regexp_valid {
+ my ($self, $name, $re) = @_;
+
+ unless ($re =~ /^\s*m?(\W).*(?:\1|>|}|\)|\])[a-z]*\s*$/) {
+ warn "config: invalid regexp for rule $name: $re: missing or invalid delimiters\n";
+ $self->{conf}->{errors}++;
+ return 0;
+ }
+ return $self->is_regexp_valid($name, $re);
}

sub is_regexp_valid {