From 5726b69317a7767c2b303731988f98072c578aca Mon Sep 17 00:00:00 2001 From: shugo Date: Thu, 11 Jul 2002 04:02:08 +0000 Subject: * lib/resolv.rb: untaint strings read from /etc/hosts and /etc/resolv.conf to prevent SecurityError when $SAFE==1. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@2631 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- lib/resolv.rb | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'lib/resolv.rb') diff --git a/lib/resolv.rb b/lib/resolv.rb index 83246a135..631690958 100644 --- a/lib/resolv.rb +++ b/lib/resolv.rb @@ -284,12 +284,15 @@ class Resolv line.sub!(/#.*/, '') addr, hostname, *aliases = line.split(/\s+/) next unless addr + addr.untaint + hostname.untaint @addr2name[addr] = [] unless @addr2name.include? addr @addr2name[addr] << hostname @addr2name[addr] += aliases @name2addr[hostname] = [] unless @name2addr.include? hostname @name2addr[hostname] << addr aliases.each {|n| + n.untaint @name2addr[n] = [] unless @name2addr.include? n @name2addr[n] << addr } @@ -689,6 +692,9 @@ class Resolv f.each {|line| line.sub!(/[#;].*/, '') keyword, *args = line.split(/\s+/) + args.each { |arg| + arg.untaint + } next unless keyword case keyword when 'nameserver' -- cgit