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*$/);