diff options
| author | Jean-Samuel Aubry-Guzzi <js.aubry@shopify.com> | 2025-12-08 11:22:55 -0500 |
|---|---|---|
| committer | Hiroshi SHIBATA <hsbt@ruby-lang.org> | 2025-12-26 11:00:51 +0900 |
| commit | f8d0960af260219ab7c10a797ac62ecad25b2974 (patch) | |
| tree | af8bea18029cd03435db15f3d7281b8f12251c68 /lib | |
| parent | 4b7bbd43408f230997e216a557d586edd492172d (diff) | |
[ruby/resolv] Handle TCP Requester #recv_reply incomplete data
https://github.com/ruby/resolv/commit/9c640bdc4a
Diffstat (limited to 'lib')
| -rw-r--r-- | lib/resolv.rb | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/lib/resolv.rb b/lib/resolv.rb index e6153af2a9..fa7d4e2e47 100644 --- a/lib/resolv.rb +++ b/lib/resolv.rb @@ -721,7 +721,8 @@ class Resolv begin reply, from = recv_reply(select_result[0]) rescue Errno::ECONNREFUSED, # GNU/Linux, FreeBSD - Errno::ECONNRESET # Windows + Errno::ECONNRESET, # Windows + EOFError # No name server running on the server? # Don't wait anymore. raise ResolvTimeout @@ -931,10 +932,10 @@ class Resolv def recv_reply(readable_socks) len_data = readable_socks[0].read(2) - raise Errno::ECONNRESET if len_data.nil? + raise EOFError if len_data.nil? || len_data.bytesize != 2 len = len_data.unpack('n')[0] reply = @socks[0].read(len) - raise Errno::ECONNRESET if reply.nil? + raise EOFError if reply.nil? || reply.bytesize != len return reply, nil end |
