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 2019/08/13 13:22:36 UTC

svn commit: r1865040 - in /spamassassin/trunk/lib/Mail/SpamAssassin: PerMsgStatus.pm Util.pm

Author: hege
Date: Tue Aug 13 13:22:35 2019
New Revision: 1865040

URL: http://svn.apache.org/viewvc?rev=1865040&view=rev
Log:
Handle ascii feed to is_fqdn_valid more robust

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

Modified: spamassassin/trunk/lib/Mail/SpamAssassin/PerMsgStatus.pm
URL: http://svn.apache.org/viewvc/spamassassin/trunk/lib/Mail/SpamAssassin/PerMsgStatus.pm?rev=1865040&r1=1865039&r2=1865040&view=diff
==============================================================================
--- spamassassin/trunk/lib/Mail/SpamAssassin/PerMsgStatus.pm (original)
+++ spamassassin/trunk/lib/Mail/SpamAssassin/PerMsgStatus.pm Tue Aug 13 13:22:35 2019
@@ -2436,7 +2436,7 @@ sub _process_text_uri_list {
       $seen{$rawuri} = 1;
 
       # Quick ignore if schemeless host not valid
-      next if defined $schost && !is_fqdn_valid(lc $schost, 1);
+      next if defined $schost && !is_fqdn_valid($schost, 1);
 
       # Ignore cid: mid: as they can be mistaken for emails,
       # these should not be parsed from stripped body in any case.

Modified: spamassassin/trunk/lib/Mail/SpamAssassin/Util.pm
URL: http://svn.apache.org/viewvc/spamassassin/trunk/lib/Mail/SpamAssassin/Util.pm?rev=1865040&r1=1865039&r2=1865040&view=diff
==============================================================================
--- spamassassin/trunk/lib/Mail/SpamAssassin/Util.pm (original)
+++ spamassassin/trunk/lib/Mail/SpamAssassin/Util.pm Tue Aug 13 13:22:35 2019
@@ -385,8 +385,13 @@ sub is_fqdn_valid {
   my ($host, $is_ascii) = @_;
   return if !defined $host;
 
-  # convert to ascii, handles Unicode dot normalization also
-  $host = idn_to_ascii($host) if !$is_ascii;
+  if ($is_ascii) {
+    utf8::encode($host)  if utf8::is_utf8($host); # force octets
+    $host = lc $host;
+  } else {
+    # convert to ascii, handles Unicode dot normalization also
+    $host = idn_to_ascii($host);
+  }
 
   # remove trailing dots
   $host =~ s/\.+\z//;