You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@spamassassin.apache.org by he...@apache.org on 2018/10/20 03:19:42 UTC

svn commit: r1844387 - in /spamassassin: branches/3.4/lib/Mail/SpamAssassin/Plugin/HeaderEval.pm trunk/lib/Mail/SpamAssassin/Plugin/HeaderEval.pm trunk/rules/20_head_tests.cf

Author: hege
Date: Sat Oct 20 03:19:42 2018
New Revision: 1844387

URL: http://svn.apache.org/viewvc?rev=1844387&view=rev
Log:
Fix check_illegal_chars ALL:raw usage

Modified:
    spamassassin/branches/3.4/lib/Mail/SpamAssassin/Plugin/HeaderEval.pm
    spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/HeaderEval.pm
    spamassassin/trunk/rules/20_head_tests.cf

Modified: spamassassin/branches/3.4/lib/Mail/SpamAssassin/Plugin/HeaderEval.pm
URL: http://svn.apache.org/viewvc/spamassassin/branches/3.4/lib/Mail/SpamAssassin/Plugin/HeaderEval.pm?rev=1844387&r1=1844386&r2=1844387&view=diff
==============================================================================
--- spamassassin/branches/3.4/lib/Mail/SpamAssassin/Plugin/HeaderEval.pm (original)
+++ spamassassin/branches/3.4/lib/Mail/SpamAssassin/Plugin/HeaderEval.pm Sat Oct 20 03:19:42 2018
@@ -266,16 +266,10 @@ sub word_is_in_dictionary {
 sub check_illegal_chars {
   my ($self, $pms, $header, $ratio, $count) = @_;
 
-  $header .= ":raw" unless ($header eq "ALL" || $header =~ /:raw$/);
+  $header .= ":raw" unless $header =~ /:raw$/;
   my $str = $pms->get($header);
   return 0 if !defined $str || $str eq '';
 
-  # avoid overlap between tests
-  if ($header eq "ALL") {
-    # Remove Subject and From
-    $str =~ s/^(?:Subject|From):.*$//gmi;
-  }
-
   # count illegal substrings (RFC 2045)
   # (non-ASCII + C0 controls except TAB, NL, CR)
   my $illegal = $str =~ tr/\x00-\x08\x0b\x0c\x0e-\x1f\x7f-\xff//;

Modified: spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/HeaderEval.pm
URL: http://svn.apache.org/viewvc/spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/HeaderEval.pm?rev=1844387&r1=1844386&r2=1844387&view=diff
==============================================================================
--- spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/HeaderEval.pm (original)
+++ spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/HeaderEval.pm Sat Oct 20 03:19:42 2018
@@ -267,16 +267,10 @@ sub word_is_in_dictionary {
 sub check_illegal_chars {
   my ($self, $pms, $header, $ratio, $count) = @_;
 
-  $header .= ":raw" unless ($header eq "ALL" || $header =~ /:raw$/);
+  $header .= ":raw" unless $header =~ /:raw$/;
   my $str = $pms->get($header);
   return 0 if !defined $str || $str eq '';
 
-  # avoid overlap between tests
-  if ($header eq "ALL") {
-    # Remove Subject and From
-    $str =~ s/^(?:Subject|From):.*$//gmi;
-  }
-
   if ($str =~ tr/\x00-\x7F//c && is_valid_utf_8($str)) {
     # is non-ASCII and is valid UTF-8
     if ($str =~ tr/\x00-\x08\x0B\x0C\x0E-\x1F//) {

Modified: spamassassin/trunk/rules/20_head_tests.cf
URL: http://svn.apache.org/viewvc/spamassassin/trunk/rules/20_head_tests.cf?rev=1844387&r1=1844386&r2=1844387&view=diff
==============================================================================
--- spamassassin/trunk/rules/20_head_tests.cf (original)
+++ spamassassin/trunk/rules/20_head_tests.cf Sat Oct 20 03:19:42 2018
@@ -458,7 +458,8 @@ describe SUBJ_ILLEGAL_CHARS	Subject: has
 header FROM_ILLEGAL_CHARS	eval:check_illegal_chars('From','0.20','2')
 describe FROM_ILLEGAL_CHARS	From: has too many raw illegal characters
 
-header HEAD_ILLEGAL_CHARS	eval:check_illegal_chars('ALL','0.010','2')
+header __HEAD_ILLEGAL_CHARS	eval:check_illegal_chars('ALL','0.010','2')
+meta HEAD_ILLEGAL_CHARS		__HEAD_ILLEGAL_CHARS && !__SUBJ_ILLEGAL_CHARS && !FROM_ILLEGAL_CHARS
 describe HEAD_ILLEGAL_CHARS	Headers have too many raw illegal characters
 
     ###################################################################