Skip to content

Commit afb57f4

Browse files
config read from file should return frozen data!
1 parent 7648ea5 commit afb57f4

File tree

1 file changed

+13
-13
lines changed

1 file changed

+13
-13
lines changed

lib/resolv.rb

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -998,13 +998,13 @@ def Config.parse_resolv_conf(filename)
998998
next unless keyword
999999
case keyword
10001000
when 'nameserver'
1001-
nameserver.concat(args)
1001+
nameserver.concat(args.each(&:freeze))
10021002
when 'domain'
10031003
next if args.empty?
1004-
search = [args[0]]
1004+
search = [args[0].freeze]
10051005
when 'search'
10061006
next if args.empty?
1007-
search = args
1007+
search = args.each(&:freeze)
10081008
when 'options'
10091009
args.each {|arg|
10101010
case arg
@@ -1015,22 +1015,22 @@ def Config.parse_resolv_conf(filename)
10151015
end
10161016
}
10171017
}
1018-
return { :nameserver => nameserver, :search => search, :ndots => ndots }
1018+
return { :nameserver => nameserver.freeze, :search => search.freeze, :ndots => ndots.freeze }.freeze
10191019
end
10201020

10211021
def Config.default_config_hash(filename="/etc/resolv.conf")
10221022
if File.exist? filename
1023-
config_hash = Config.parse_resolv_conf(filename)
1023+
Config.parse_resolv_conf(filename)
1024+
elsif WINDOWS
1025+
require 'win32/resolv' unless defined?(Win32::Resolv)
1026+
search, nameserver = Win32::Resolv.get_resolv_info
1027+
config_hash = {}
1028+
config_hash[:nameserver] = nameserver if nameserver
1029+
config_hash[:search] = [search].flatten if search
1030+
config_hash
10241031
else
1025-
if WINDOWS
1026-
require 'win32/resolv' unless defined?(Win32::Resolv)
1027-
search, nameserver = Win32::Resolv.get_resolv_info
1028-
config_hash = {}
1029-
config_hash[:nameserver] = nameserver if nameserver
1030-
config_hash[:search] = [search].flatten if search
1031-
end
1032+
{}
10321033
end
1033-
config_hash || {}
10341034
end
10351035

10361036
def lazy_initialize

0 commit comments

Comments
 (0)