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/18 18:28:11 UTC

svn commit: r1844276 - /spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/DCC.pm

Author: hege
Date: Thu Oct 18 18:28:11 2018
New Revision: 1844276

URL: http://svn.apache.org/viewvc?rev=1844276&view=rev
Log:
Fix possible callback loop

Modified:
    spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/DCC.pm

Modified: spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/DCC.pm
URL: http://svn.apache.org/viewvc/spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/DCC.pm?rev=1844276&r1=1844275&r2=1844276&view=diff
==============================================================================
--- spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/DCC.pm (original)
+++ spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/DCC.pm Thu Oct 18 18:28:11 2018
@@ -656,7 +656,7 @@ sub check_cleanup {
   my $pms = $opts->{permsgstatus};
 
   # Finish callbacks
-  if ($pms->{dcc_range_callbacks}) {
+  if ($pms->{dcc_x_result} && $pms->{dcc_range_callbacks}) {
     foreach (@{$pms->{dcc_range_callbacks}}) {
       $self->check_dcc_reputation_range($pms, @$_);
     }
@@ -812,15 +812,10 @@ sub check_dcc_reputation_range {
   return 0 if !$self->{main}->{conf}->{use_dcc_rep};
   return 0 if $pms->{dcc_abort};
 
-  # Check if callback overriding rulename
-  my $cb;
-  if (!defined $rulename) {
+  # Check if callback (overrides rulename)
+  my $cb = defined $rulename;
+  if (!$cb) {
     $rulename = $pms->get_current_eval_rule_name();
-  } else {
-    $cb = 1;
-  }
-
-  if (!defined $pms->{dcc_result}) {
     dbg("dcc: delaying check_dcc_reputation_range call for $rulename");
     # array matches check_dcc_reputation_range() argument order
     push @{$pms->{dcc_range_callbacks}}, [$fulltext, $min, $max, $rulename];