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 2009/09/30 16:59:32 UTC

svn commit: r820289 - in /spamassassin/trunk/lib/Mail/SpamAssassin: Conf/Parser.pm Plugin/DKIM.pm

Author: mmartinec
Date: Wed Sep 30 14:59:32 2009
New Revision: 820289

URL: http://svn.apache.org/viewvc?rev=820289&view=rev
Log:
Bug 6213: parsing of eval-type rules: allow unquoted
domain names, disallow unmatched quotes

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

Modified: spamassassin/trunk/lib/Mail/SpamAssassin/Conf/Parser.pm
URL: http://svn.apache.org/viewvc/spamassassin/trunk/lib/Mail/SpamAssassin/Conf/Parser.pm?rev=820289&r1=820288&r2=820289&view=diff
==============================================================================
--- spamassassin/trunk/lib/Mail/SpamAssassin/Conf/Parser.pm (original)
+++ spamassassin/trunk/lib/Mail/SpamAssassin/Conf/Parser.pm Wed Sep 30 14:59:32 2009
@@ -958,15 +958,18 @@
 
   my @args;
   if (defined $args) {
-    # bug 4419: Parse quoted strings, unquoted alphanumerics/floats and
-    # both unquoted IPv4 and IPv6 addresses.  s// is used so that we can
-    # determine whether or not we successfully parsed ALL arguments.
-    while ($args =~ s/^\s*(?:['"](.*?)['"]|([\d\.:A-Za-z]+?))\s*(?:,\s*|$)//) {
-      if (defined $1) {
-        push @args, $1;
+    # bug 4419: Parse quoted strings, unquoted alphanumerics/floats,
+    # unquoted IPv4 and IPv6 addresses, and unquoted common domain names.
+    # s// is used so that we can determine whether or not we successfully
+    # parsed ALL arguments.
+    local($1,$2,$3);
+    while ($args =~ s/^\s* (?: (['"]) (.*?) \1 | ( [\d\.:A-Za-z-]+? ) )
+                       \s* (?: , \s* | $ )//x) {
+      if (defined $2) {
+        push @args, $2;
       }
       else {
-        push @args, $2;
+        push @args, $3;
       }
     }
   }

Modified: spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/DKIM.pm
URL: http://svn.apache.org/viewvc/spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/DKIM.pm?rev=820289&r1=820288&r2=820289&view=diff
==============================================================================
--- spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/DKIM.pm (original)
+++ spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/DKIM.pm Wed Sep 30 14:59:32 2009
@@ -29,7 +29,8 @@
  full   DKIM_VALID_AU         eval:check_dkim_valid_author_sig()
 
 Taking into account signatures from specified signing domains only:
-(quotes may be omitted on domains consisting only of letters, digits and dots)
+(quotes may be omitted on domain names consisting only of letters, digits,
+dots, and minus characters)
  full   DKIM_SIGNED_MY1       eval:check_dkim_signed('dom1','dom2',...)
  full   DKIM_VALID_MY1        eval:check_dkim_valid('dom1','dom2',...)
  full   DKIM_VALID_AU_MY1     eval:check_dkim_valid_author_sig('d1','d2',...)