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...