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 2013/01/29 14:15:42 UTC

svn commit: r1439884 - /spamassassin/trunk/lib/Mail/SpamAssassin/DnsResolver.pm

Author: mmartinec
Date: Tue Jan 29 13:15:42 2013
New Revision: 1439884

URL: http://svn.apache.org/viewvc?rev=1439884&view=rev
Log:
Bug 6896: encode also nonprintables, just in case (Net::DNS feature-proofing)

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

Modified: spamassassin/trunk/lib/Mail/SpamAssassin/DnsResolver.pm
URL: http://svn.apache.org/viewvc/spamassassin/trunk/lib/Mail/SpamAssassin/DnsResolver.pm?rev=1439884&r1=1439883&r2=1439884&view=diff
==============================================================================
--- spamassassin/trunk/lib/Mail/SpamAssassin/DnsResolver.pm (original)
+++ spamassassin/trunk/lib/Mail/SpamAssassin/DnsResolver.pm Tue Jan 29 13:15:42 2013
@@ -555,8 +555,9 @@ sub new_dns_packet {
     # Net::DNS expects RFC 1035 zone format encoding even in its API, silly!
     # Since 0.68 it also assumes that domain names containing characters
     # with codes above 0177 imply that IDN translation is to be performed.
-    $domain =~ s{ ( [\200-\377\\] ) }
-                { ord($1) < 0200 ? "\\$1" : sprintf("\\%03d",ord($1)) }xgse;
+    # Protect also nonprintable characters just in case, ensuring transparency.
+    $domain =~ s{ ( [\000-\037\177-\377\\] ) }
+                { $1 eq '\\' ? "\\$1" : sprintf("\\%03d",ord($1)) }xgse;
     $packet = Net::DNS::Packet->new($domain, $type, $class);
 
     # a bit noisy, so commented by default...