You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@spamassassin.apache.org by gb...@apache.org on 2025/10/13 16:33:35 UTC

svn commit: r1929117 - spamassassin/trunk/lib/Mail/SpamAssassin

Author: gbechis
Date: Mon Oct 13 16:33:35 2025
New Revision: 1929117

Log:
check that is possible to verify if the DNS answer is a CNAME
bz #8353

Modified:
   spamassassin/trunk/lib/Mail/SpamAssassin/PerMsgStatus.pm

Modified: spamassassin/trunk/lib/Mail/SpamAssassin/PerMsgStatus.pm
==============================================================================
--- spamassassin/trunk/lib/Mail/SpamAssassin/PerMsgStatus.pm	Mon Oct 13 16:09:32 2025	(r1929116)
+++ spamassassin/trunk/lib/Mail/SpamAssassin/PerMsgStatus.pm	Mon Oct 13 16:33:35 2025	(r1929117)
@@ -2928,16 +2928,18 @@ sub add_uri_detail_list {
         # if a CNAME is present
         $self->{dns_cname_cache}{$host} = 'invalid';
         foreach my $ans ( @answ ) {
-          return if not defined $ans->cname;
-          if(not exists $self->{dns_cname_cache}{$host}) {
-            $self->{dns_cname_cache}{$host} = $ans->cname;
-            dbg("dns: found CNAME " . $ans->cname . " for host $host");
-            my $cname_types = { %{$types} };
-            $cname_types->{unlinked} = 1;
-            $cname_types->{noclean} = 1;
-            $self->{uri_cnames}{$ans->cname} = $host;
-            $self->add_uri_detail_list($ans->cname, $cname_types, $source, 1);
-	  }
+          if($ans->can("cname")) {
+            return if not defined $ans->cname;
+            if(not exists $self->{dns_cname_cache}{$host}) {
+              $self->{dns_cname_cache}{$host} = $ans->cname;
+              dbg("dns: found CNAME " . $ans->cname . " for host $host");
+              my $cname_types = { %{$types} };
+              $cname_types->{unlinked} = 1;
+              $cname_types->{noclean} = 1;
+              $self->{uri_cnames}{$ans->cname} = $host;
+              $self->add_uri_detail_list($ans->cname, $cname_types, $source, 1);
+            }
+          }
         }
       } or do {
         undef $pkt;