mirror of
https://github.com/ruby/ruby.git
synced 2025-08-15 13:39:04 +02:00
Bump up resolv-0.3.1 for Ruby 3.3
This commit is contained in:
parent
7fb19cf803
commit
111a49e77e
2 changed files with 13 additions and 2 deletions
|
@ -37,7 +37,7 @@ end
|
||||||
|
|
||||||
class Resolv
|
class Resolv
|
||||||
|
|
||||||
VERSION = "0.3.0"
|
VERSION = "0.3.1"
|
||||||
|
|
||||||
##
|
##
|
||||||
# Looks up the first IP address for +name+.
|
# Looks up the first IP address for +name+.
|
||||||
|
@ -1655,6 +1655,7 @@ class Resolv
|
||||||
prev_index = @index
|
prev_index = @index
|
||||||
save_index = nil
|
save_index = nil
|
||||||
d = []
|
d = []
|
||||||
|
size = -1
|
||||||
while true
|
while true
|
||||||
raise DecodeError.new("limit exceeded") if @limit <= @index
|
raise DecodeError.new("limit exceeded") if @limit <= @index
|
||||||
case @data.getbyte(@index)
|
case @data.getbyte(@index)
|
||||||
|
@ -1675,7 +1676,10 @@ class Resolv
|
||||||
end
|
end
|
||||||
@index = idx
|
@index = idx
|
||||||
else
|
else
|
||||||
d << self.get_label
|
l = self.get_label
|
||||||
|
d << l
|
||||||
|
size += 1 + l.string.bytesize
|
||||||
|
raise DecodeError.new("name label data exceed 255 octets") if size > 255
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -589,6 +589,13 @@ class TestResolvDNS < Test::Unit::TestCase
|
||||||
assert_operator(2**14, :<, m.to_s.length)
|
assert_operator(2**14, :<, m.to_s.length)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def test_too_long_address
|
||||||
|
too_long_address_message = [0, 0, 1, 0, 0, 0].pack("n*") + "\x01x" * 129 + [0, 0, 0].pack("cnn")
|
||||||
|
assert_raise_with_message(Resolv::DNS::DecodeError, /name label data exceed 255 octets/) do
|
||||||
|
Resolv::DNS::Message.decode too_long_address_message
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
def assert_no_fd_leak
|
def assert_no_fd_leak
|
||||||
socket = assert_throw(self) do |tag|
|
socket = assert_throw(self) do |tag|
|
||||||
Resolv::DNS.stub(:bind_random_port, ->(s, *) {throw(tag, s)}) do
|
Resolv::DNS.stub(:bind_random_port, ->(s, *) {throw(tag, s)}) do
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue