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/28 15:55:55 UTC

svn commit: r1845043 - in /spamassassin/trunk/lib/Mail/SpamAssassin: AutoWhitelist.pm Client.pm HTML.pm Plugin/AntiVirus.pm Plugin/BodyRuleBaseExtractor.pm Plugin/Check.pm Plugin/HeaderEval.pm Plugin/MIMEEval.pm Plugin/PDFInfo.pm Plugin/TxRep.pm Util.pm

Author: hege
Date: Sun Oct 28 15:55:55 2018
New Revision: 1845043

URL: http://svn.apache.org/viewvc?rev=1845043&view=rev
Log:
Use index for literal matches

Modified:
    spamassassin/trunk/lib/Mail/SpamAssassin/AutoWhitelist.pm
    spamassassin/trunk/lib/Mail/SpamAssassin/Client.pm
    spamassassin/trunk/lib/Mail/SpamAssassin/HTML.pm
    spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/AntiVirus.pm
    spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/BodyRuleBaseExtractor.pm
    spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/Check.pm
    spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/HeaderEval.pm
    spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/MIMEEval.pm
    spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/PDFInfo.pm
    spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/TxRep.pm
    spamassassin/trunk/lib/Mail/SpamAssassin/Util.pm

Modified: spamassassin/trunk/lib/Mail/SpamAssassin/AutoWhitelist.pm
URL: http://svn.apache.org/viewvc/spamassassin/trunk/lib/Mail/SpamAssassin/AutoWhitelist.pm?rev=1845043&r1=1845042&r2=1845043&view=diff
==============================================================================
--- spamassassin/trunk/lib/Mail/SpamAssassin/AutoWhitelist.pm (original)
+++ spamassassin/trunk/lib/Mail/SpamAssassin/AutoWhitelist.pm Sun Oct 28 15:55:55 2018
@@ -301,7 +301,7 @@ sub ip_to_awl_key {
         $result =~s/(\.0){1,3}\z//;  # truncate zero tail
       }
     }
-  } elsif ($origip =~ /:/ &&  # triage
+  } elsif (index($origip, ':') >= 0 &&  # triage
            $origip =~
            /^ [0-9a-f]{0,4} (?: : [0-9a-f]{0,4} | \. [0-9]{1,3} ){2,9} $/xsi) {
     # looks like an IPv6 address

Modified: spamassassin/trunk/lib/Mail/SpamAssassin/Client.pm
URL: http://svn.apache.org/viewvc/spamassassin/trunk/lib/Mail/SpamAssassin/Client.pm?rev=1845043&r1=1845042&r2=1845043&view=diff
==============================================================================
--- spamassassin/trunk/lib/Mail/SpamAssassin/Client.pm (original)
+++ spamassassin/trunk/lib/Mail/SpamAssassin/Client.pm Sun Oct 28 15:55:55 2018
@@ -270,10 +270,10 @@ sub learn {
   close $remote  or die "error closing socket: $!";
 
   if ($learntype == 0 || $learntype == 1) {
-    return $did_set =~ /local/;
+    return index($did_set, 'local') >= 0;
   }
   else { #safe since we've already checked the $learntype values
-    return $did_remove =~ /local/;
+    return index($did_remove, 'local') >= 0;
   }
 }
 

Modified: spamassassin/trunk/lib/Mail/SpamAssassin/HTML.pm
URL: http://svn.apache.org/viewvc/spamassassin/trunk/lib/Mail/SpamAssassin/HTML.pm?rev=1845043&r1=1845042&r2=1845043&view=diff
==============================================================================
--- spamassassin/trunk/lib/Mail/SpamAssassin/HTML.pm (original)
+++ spamassassin/trunk/lib/Mail/SpamAssassin/HTML.pm Sun Oct 28 15:55:55 2018
@@ -516,7 +516,7 @@ sub text_style {
 	    my $whcolor = $1 ? 'bgcolor' : 'fgcolor';
 	    my $value = lc $2;
 
-	    if ($value =~ /rgb/) {
+	    if (index($value, 'rgb') >= 0) {
 	      $value =~ tr/0-9,//cd;
 	      my @rgb = split(/,/, $value);
               $new{$whcolor} = sprintf("#%02x%02x%02x",
@@ -1136,7 +1136,7 @@ sub _merge_uri {
     return "/" . $r_path;
   }
   else {
-    if ($base_path =~ m|/|) {
+    if (index($base_path, '/') >= 0) {
       $base_path =~ s|(?<=/)[^/]*$||;
     }
     else {

Modified: spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/AntiVirus.pm
URL: http://svn.apache.org/viewvc/spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/AntiVirus.pm?rev=1845043&r1=1845042&r2=1845043&view=diff
==============================================================================
--- spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/AntiVirus.pm (original)
+++ spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/AntiVirus.pm Sun Oct 28 15:55:55 2018
@@ -107,7 +107,7 @@ sub _check_attachments {
       # file extension indicates an executable
       $pms->{antivirus_microsoft_exe} = 1;
     }
-    elsif ($cte =~ /base64/ && defined $p->raw()->[0] &&
+    elsif (index($cte, 'base64') >= 0 && defined $p->raw()->[0] &&
 	   $p->raw()->[0] =~ /^TV[opqr].A..[AB].[AQgw][A-H].A/)
     {
       # base64-encoded executable

Modified: spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/BodyRuleBaseExtractor.pm
URL: http://svn.apache.org/viewvc/spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/BodyRuleBaseExtractor.pm?rev=1845043&r1=1845042&r2=1845043&view=diff
==============================================================================
--- spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/BodyRuleBaseExtractor.pm (original)
+++ spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/BodyRuleBaseExtractor.pm Sun Oct 28 15:55:55 2018
@@ -445,7 +445,7 @@ sub simplify_and_qr_regexp {
   }
   else {
     die "case-i" if $rule =~ /\(\?i\)/;
-    die "case-i" if $mods =~ /i/;
+    die "case-i" if index($mods, 'i') >= 0;
 
     # always case-i: /A(?i:ct) N(?i:ow)/ => /Act Now/
     $rule =~ s/(?<!\\)\(\?i\:(.*?)\)/$1/gs and die "case-i";

Modified: spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/Check.pm
URL: http://svn.apache.org/viewvc/spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/Check.pm?rev=1845043&r1=1845042&r2=1845043&view=diff
==============================================================================
--- spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/Check.pm (original)
+++ spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/Check.pm Sun Oct 28 15:55:55 2018
@@ -270,7 +270,7 @@ sub run_rbl_eval_tests {
       $result = $pms->$function($rulename, @args);  1;
     } or do {
       my $eval_stat = $@ ne '' ? $@ : "errno=$!";  chomp $eval_stat;
-      die "rules: $eval_stat\n"  if $eval_stat =~ /__alarm__ignore__/;
+      die "rules: $eval_stat\n"  if index($eval_stat, '__alarm__ignore__') >= 0;
       warn "rules: failed to run $rulename RBL test, skipping:\n".
            "\t($eval_stat)\n";
       $pms->{rule_errors}++;
@@ -1259,7 +1259,7 @@ sub run_eval_tests {
         $result = $self->' . $function . ' (@extraevalargs '. $argstr .' );  1;
       } or do {
         $result = 0;
-        die "rules: $@\n"  if $@ =~ /__alarm__ignore__/;
+        die "rules: $@\n"  if index($@, "__alarm__ignore__") >= 0;
         $self->handle_eval_rule_errors($rulename);
       };
 

Modified: spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/HeaderEval.pm
URL: http://svn.apache.org/viewvc/spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/HeaderEval.pm?rev=1845043&r1=1845042&r2=1845043&view=diff
==============================================================================
--- spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/HeaderEval.pm (original)
+++ spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/HeaderEval.pm Sun Oct 28 15:55:55 2018
@@ -571,7 +571,7 @@ sub check_for_forged_juno_received_heade
     # New style Juno has no X-Originating-IP header, and other changes
     if($rcvd !~ /from.*\b(?:juno|untd)\.com.*[\[\(]$IP_ADDRESS[\]\)].*by/
         && $rcvd !~ / cookie\.(?:juno|untd)\.com /) { return 1; }
-    if($xmailer !~ /Juno /) { return 1; }
+    if(index($xmailer, 'Juno ') == -1) { return 1; }
   } else {
     if($rcvd =~ /from.*\bmail\.com.*\[$IP_ADDRESS\].*by/) {
       if($xmailer !~ /\bmail\.com/) { return 1; }

Modified: spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/MIMEEval.pm
URL: http://svn.apache.org/viewvc/spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/MIMEEval.pm?rev=1845043&r1=1845042&r2=1845043&view=diff
==============================================================================
--- spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/MIMEEval.pm (original)
+++ spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/MIMEEval.pm Sun Oct 28 15:55:55 2018
@@ -226,19 +226,19 @@ sub _check_mime_header {
     $pms->{mime_body_text_count}++;
   }
 
-  if (index($cte, 'base64') != -1) {
+  if (index($cte, 'base64') >= 0) {
     $pms->{mime_base64_count}++;
   }
-  elsif (index($cte, 'quoted-printable') != -1) {
+  elsif (index($cte, 'quoted-printable') >= 0) {
     $pms->{mime_qp_count}++;
   }
 
-  if ($cd && index($cd, 'attachment') != -1) {
+  if ($cd && index($cd, 'attachment') >= 0) {
     $pms->{mime_attachment}++;
   }
 
   if ($ctype =~ /^text/ &&
-      index($cte, 'base64') != -1 &&
+      index($cte, 'base64') >= 0 &&
       (!$charset || $charset =~ /(?:us-ascii|ansi_x3\.4-1968|iso-ir-6|ansi_x3\.4-1986|iso_646\.irv:1991|ascii|iso646-us|us|ibm367|cp367|csascii)/) &&
       !($cd && $cd =~ /^(?:attachment|inline)/))
   {
@@ -361,7 +361,7 @@ sub _check_attachments {
     $part_type[$part] = $ctype;
     $part_bytes[$part] = 0 if index($cd, 'attachment') == -1;
 
-    my $cte_is_base64 = $cte =~ /base64/i;
+    my $cte_is_base64 = index($cte, 'base64') >= 0;
     my $previous = '';
     foreach (@{$p->raw()}) {
 
@@ -408,7 +408,7 @@ sub _check_attachments {
         # }
 
         # count excessive QP bytes
-        if (index($_, '=') != -1) {
+        if (index($_, '=') >= 0) {
 	  # whoever wrote this next line is an evil hacker -- jm
 	  my $qp = () = m/=(?:09|3[0-9ABCEF]|[2456][0-9A-F]|7[0-9A-E])/g;
 	  if ($qp) {

Modified: spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/PDFInfo.pm
URL: http://svn.apache.org/viewvc/spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/PDFInfo.pm?rev=1845043&r1=1845042&r2=1845043&view=diff
==============================================================================
--- spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/PDFInfo.pm (original)
+++ spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/PDFInfo.pm Sun Oct 28 15:55:55 2018
@@ -237,7 +237,7 @@ my %get_details = (
       $encrypted=1 if ($line =~ m/^\/Encrypt/);
 
       # once we hit the first stream, we stop collecting data for fuzzy md5
-      $no_more_fuzzy = 1 if ($line =~ m/stream/);
+      $no_more_fuzzy = 1 if (index($line, 'stream') >= 0);
 
       # From a v1.3 pdf
       # [12234] dbg: pdfinfo: line=630 0 0 149 0 0 cm

Modified: spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/TxRep.pm
URL: http://svn.apache.org/viewvc/spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/TxRep.pm?rev=1845043&r1=1845042&r2=1845043&view=diff
==============================================================================
--- spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/TxRep.pm (original)
+++ spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/TxRep.pm Sun Oct 28 15:55:55 2018
@@ -1104,7 +1104,7 @@ sub _fn_envelope {
 		$self->{conf}->{txrep_weight_helo};
   my $sign = $args->{signedby};
   my $id     = $args->{address};
-  if ($args->{address} =~ /,/) {
+  if (index($args->{address}, ',') >= 0) {
     $sign = $args->{address};
     $sign =~ s/^.*,//g;
     $id   =~ s/,.*$//g;
@@ -1115,9 +1115,9 @@ sub _fn_envelope {
 	{$factor /= $self->{conf}->{txrep_weight_helo}; $sign = 'helo';}
   elsif ($id =~ /^[a-f\d\.:]+$/ && $self->{conf}->{txrep_weight_ip})
 	{$factor /= $self->{conf}->{txrep_weight_ip};}
-  elsif ($id =~ /@/ && $self->{conf}->{txrep_weight_email})
+  elsif (index($id, '@') >= 0 && $self->{conf}->{txrep_weight_email})
 	{$factor /= $self->{conf}->{txrep_weight_email};}
-  elsif ($id !~ /@/ && $self->{conf}->{txrep_weight_domain})
+  elsif (index($id, '@') == -1 && $self->{conf}->{txrep_weight_domain})
 	{$factor /= $self->{conf}->{txrep_weight_domain};}
   else	{$factor  = 1;}
 
@@ -1659,15 +1659,15 @@ sub open_storages {
 	# TODO: add an a method to the handler class instead
 	my ($storage_type, $is_global);
 	
-	if (ref($factory) =~ /SQLBasedAddrList/) {
+	if (index(ref($factory), 'SQLBasedAddrList') >= 0) {
 	    $is_global    = defined $self->{conf}->{user_awl_sql_override_username};
 	    $storage_type = 'SQL';
 	    if ($is_global && $self->{conf}->{user_awl_sql_override_username} eq $self->{main}->{username}) {
 		# skip double storage if current user same as the global override
 		$self->{user_storage} = $self->{global_storage} = $self->{default_storage};
 	    }
-	} elsif (ref($factory) =~ /DBBasedAddrList/) {
-	    $is_global    = $self->{conf}->{auto_whitelist_path} !~ /__userstate__/;
+	} elsif (index(ref($factory), 'DBBasedAddrList') >= 0) {
+	    $is_global    = index($self->{conf}->{auto_whitelist_path}, '__userstate__') == -1;
 	    $storage_type = 'DB';
 	}
 	if (!defined $self->{global_storage}) {
@@ -1751,7 +1751,7 @@ sub ip_to_awl_key {
         $result =~s/(\.0){1,3}\z//;                     # truncate zero tail
       }
     }
-  } elsif ($origip =~ /:/ &&                            # triage
+  } elsif (index($origip, ':') >= 0 &&                            # triage
            $origip =~
            /^ [0-9a-f]{0,4} (?: : [0-9a-f]{0,4} | \. [0-9]{1,3} ){2,9} $/xsi) {
     # looks like an IPv6 address

Modified: spamassassin/trunk/lib/Mail/SpamAssassin/Util.pm
URL: http://svn.apache.org/viewvc/spamassassin/trunk/lib/Mail/SpamAssassin/Util.pm?rev=1845043&r1=1845042&r2=1845043&view=diff
==============================================================================
--- spamassassin/trunk/lib/Mail/SpamAssassin/Util.pm (original)
+++ spamassassin/trunk/lib/Mail/SpamAssassin/Util.pm Sun Oct 28 15:55:55 2018
@@ -1037,7 +1037,7 @@ sub reverse_ip_address {
   local($1,$2,$3,$4);
   if ($ip =~ /^(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\z/) {
     $revip = "$4.$3.$2.$1";
-  } elsif ($ip !~ /:/ || $ip !~ /^[0-9a-fA-F:.]{2,}\z/) {  # triage
+  } elsif (index($ip, ':') == -1 || $ip !~ /^[0-9a-fA-F:.]{2,}\z/) {  # triage
     # obviously unrecognized syntax
   } elsif (!NetAddr::IP->can('full6')) {  # since NetAddr::IP 4.010
     info("util: version of NetAddr::IP is too old, IPv6 not supported");