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 2022/07/25 15:21:21 UTC

svn commit: r1903009 - /spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/DKIM.pm

Author: mmartinec
Date: Mon Jul 25 15:21:20 2022
New Revision: 1903009

URL: http://svn.apache.org/viewvc?rev=1903009&view=rev
Log:
MS::Plugin::DKIM : must not treat a selector "0" as missing! (also fixes warnings: call method "result_detail" on an undefined value)

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

Modified: spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/DKIM.pm
URL: http://svn.apache.org/viewvc/spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/DKIM.pm?rev=1903009&r1=1903008&r2=1903009&view=diff
==============================================================================
--- spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/DKIM.pm (original)
+++ spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/DKIM.pm Mon Jul 25 15:21:20 2022
@@ -1012,9 +1012,10 @@ sub _check_valid_signature {
     foreach my $signature (@$signatures) {
       # old versions of Mail::DKIM would give undef for an invalid signature
       next if !defined $signature;
-      next if !$signature->selector; # empty selector
+      $sig_result_supported = !! $signature->UNIVERSAL::can("result_detail");
+      # test for empty selector (must not treat a selector "0" as missing!)
+      next if !defined $signature->selector || $signature->selector eq "";
 
-      $sig_result_supported = $signature->UNIVERSAL::can("result_detail");
       my($info, $valid, $expired);
       $valid =
         ($sig_result_supported ? $signature : $verifier)->result eq 'pass';
@@ -1395,9 +1396,10 @@ sub _wlcheck_list {
   foreach my $signature (@{$pms->{dkim_signatures}}) {
     # old versions of Mail::DKIM would give undef for an invalid signature
     next if !defined $signature;
-    next if !$signature->selector; # empty selector
+    my $sig_result_supported = !! $signature->UNIVERSAL::can("result_detail");
+    # test for empty selector (must not treat a selector "0" as missing!)
+    next if !defined $signature->selector || $signature->selector eq "";
 
-    my $sig_result_supported = $signature->UNIVERSAL::can("result_detail");
     my($info, $valid, $expired, $key_size_weak);
     $valid =
       ($sig_result_supported ? $signature : $verifier)->result eq 'pass';