You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@spamassassin.apache.org by mm...@apache.org on 2010/01/27 12:42:04 UTC
svn commit: r903614 - in /spamassassin/trunk/lib/Mail/SpamAssassin: Conf.pm
Conf/Parser.pm
Author: mmartinec
Date: Wed Jan 27 11:42:02 2010
New Revision: 903614
URL: http://svn.apache.org/viewvc?rev=903614&view=rev
Log:
Bug 6307 - exists in header rule fails if underscore present in pattern
Modified:
spamassassin/trunk/lib/Mail/SpamAssassin/Conf.pm
spamassassin/trunk/lib/Mail/SpamAssassin/Conf/Parser.pm
Modified: spamassassin/trunk/lib/Mail/SpamAssassin/Conf.pm
URL: http://svn.apache.org/viewvc/spamassassin/trunk/lib/Mail/SpamAssassin/Conf.pm?rev=903614&r1=903613&r2=903614&view=diff
==============================================================================
--- spamassassin/trunk/lib/Mail/SpamAssassin/Conf.pm (original)
+++ spamassassin/trunk/lib/Mail/SpamAssassin/Conf.pm Wed Jan 27 11:42:02 2010
@@ -2156,8 +2156,8 @@
=item header SYMBOLIC_TEST_NAME exists:name_of_header
Define a header existence test. C<name_of_header> is the name of a
-header to test for existence. This is just a very simple version of
-the above header tests.
+header field to test for existence. This is just a very simple version
+of the above header tests.
=item header SYMBOLIC_TEST_NAME eval:name_of_eval_method([arguments])
@@ -2280,7 +2280,8 @@
$self->{parser}->add_test ($name, $fn, $TYPE_HEAD_EVALS);
}
}
- elsif ($value =~ /^(\S+)\s+exists:(.*)$/) {
+ elsif ($value =~ /^(\S+)\s+exists:([!-9;-\176]+)$/) {
+ # RFC 5322 section 3.6.8, ftext printable US-ASCII ch not including ":"
$self->{parser}->add_test ($1, "defined($2)", $TYPE_HEAD_TESTS);
$self->{descriptions}->{$1} = "Found a $2 header";
}
Modified: spamassassin/trunk/lib/Mail/SpamAssassin/Conf/Parser.pm
URL: http://svn.apache.org/viewvc/spamassassin/trunk/lib/Mail/SpamAssassin/Conf/Parser.pm?rev=903614&r1=903613&r2=903614&view=diff
==============================================================================
--- spamassassin/trunk/lib/Mail/SpamAssassin/Conf/Parser.pm (original)
+++ spamassassin/trunk/lib/Mail/SpamAssassin/Conf/Parser.pm Wed Jan 27 11:42:02 2010
@@ -1127,7 +1127,8 @@
}
if ($type == $Mail::SpamAssassin::Conf::TYPE_HEAD_TESTS)
{
- if ($text =~ /^!?defined\([A-Za-z][A-Za-z0-9-]*\)$/) {
+ # RFC 5322 section 3.6.8, ftext printable US-ASCII chars not including ":"
+ if ($text =~ /^!?defined\([!-9;-\176]+\)$/) {
# fine, implements 'exists:'
} else {
my ($pat) = ($text =~ /^\s*\S+\s*(?:\=|\!)\~\s*(\S.*?\S)\s*$/);