Issue #14369 has been reported by docwhat (Christian Hltje).

----------------------------------------
Bug #14369: Win32::Resolv.get_hosts_path may return nil, causing Resolv to fail
https://bugs.ruby-lang.org/issues/14369

* Author: docwhat (Christian Hltje)
* Status: Open
* Priority: Normal
* Assignee: 
* Target version: 
* ruby -v: trunk
* Backport: 2.3: UNKNOWN, 2.4: UNKNOWN, 2.5: UNKNOWN
----------------------------------------
[Win32::Resolv.get_hosts_path()](https://github.com/ruby/ruby/blob/e0468f5ce87ef77c1ad08bc0d107a967e4906783/ext/win32/lib/win32/resolv.rb#L14) may return `nil`.

The `Resolv` class uses that [to get the hosts filename](https://github.com/ruby/ruby/blob/e0468f5ce87ef77c1ad08bc0d107a967e4906783/lib/resolv.rb#L172) which is used as the default when [initializing `Hosts`](https://github.com/ruby/ruby/blob/e0468f5ce87ef77c1ad08bc0d107a967e4906783/lib/resolv.rb#L180-L181) as `@filename`.

However, [`File.open(@filename, 'rb')`](https://github.com/ruby/ruby/blob/e0468f5ce87ef77c1ad08bc0d107a967e4906783/lib/resolv.rb#L191) is always called, even if `@filename` is `nil`.

This causes the error: `TypeError: no implicit conversion of nil into String`



-- 
https://bugs.ruby-lang.org/

Unsubscribe: <mailto:ruby-core-request / ruby-lang.org?subject=unsubscribe>
<http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-core>