[ruby-core:94464] [Ruby master Bug#10520] Resolv fails on additional resources when quering address records
From:
merch-redmine@...
Date:
2019-08-21 23:06:34 UTC
List:
ruby-core #94464
Issue #10520 has been updated by jeremyevans0 (Jeremy Evans).
Status changed from Open to Closed
This should be fixed by commit:2b2450ba4bee563e33af0325b7fde8cb1bfd6899.
----------------------------------------
Bug #10520: Resolv fails on additional resources when quering address records
https://bugs.ruby-lang.org/issues/10520#change-80898
* Author: corny (Mr Corn)
* Status: Closed
* Priority: Normal
* Assignee:
* Target version:
* ruby -v: ruby 2.1.5p273
* Backport: 2.0.0: UNKNOWN, 2.1: UNKNOWN
----------------------------------------
This works:
~~~
Resolv::DNS.open(nameserver: ['8.8.8.8'] ) { |dns| dns.getresources('wikileaks.org', Resolv::DNS::Resource::IN::A) }
~~~
This fails:
~~~
Resolv::DNS.open(nameserver: ['217.219.179.10'] ) { |dns| dns.getresources('wikileaks.org', Resolv::DNS::Resource::IN::A) }
ArgumentError: IPv4 address expects 4 bytes but 2 bytes
from $HOME/.rvm/rubies/ruby-2.1.5/lib/ruby/2.1.0/resolv.rb:2332:in `initialize'
from $HOME/.rvm/rubies/ruby-2.1.5/lib/ruby/2.1.0/resolv.rb:2137:in `new'
from $HOME/.rvm/rubies/ruby-2.1.5/lib/ruby/2.1.0/resolv.rb:2137:in `decode_rdata'
from $HOME/.rvm/rubies/ruby-2.1.5/lib/ruby/2.1.0/resolv.rb:1621:in `block in get_rr'
from $HOME/.rvm/rubies/ruby-2.1.5/lib/ruby/2.1.0/resolv.rb:1522:in `get_length16'
from $HOME/.rvm/rubies/ruby-2.1.5/lib/ruby/2.1.0/resolv.rb:1621:in `get_rr'
from $HOME/.rvm/rubies/ruby-2.1.5/lib/ruby/2.1.0/resolv.rb:1499:in `block (2 levels) in decode'
from $HOME/.rvm/rubies/ruby-2.1.5/lib/ruby/2.1.0/resolv.rb:1498:in `each'
from $HOME/.rvm/rubies/ruby-2.1.5/lib/ruby/2.1.0/resolv.rb:1498:in `block in decode'
from $HOME/.rvm/rubies/ruby-2.1.5/lib/ruby/2.1.0/resolv.rb:1511:in `initialize'
from $HOME/.rvm/rubies/ruby-2.1.5/lib/ruby/2.1.0/resolv.rb:1475:in `new'
from $HOME/.rvm/rubies/ruby-2.1.5/lib/ruby/2.1.0/resolv.rb:1475:in `decode'
from $HOME/.rvm/rubies/ruby-2.1.5/lib/ruby/2.1.0/resolv.rb:699:in `request'
from $HOME/.rvm/rubies/ruby-2.1.5/lib/ruby/2.1.0/resolv.rb:529:in `block in fetch_resource'
from $HOME/.rvm/rubies/ruby-2.1.5/lib/ruby/2.1.0/resolv.rb:1096:in `block (3 levels) in resolv'
from $HOME/.rvm/rubies/ruby-2.1.5/lib/ruby/2.1.0/resolv.rb:1094:in `each'
from $HOME/.rvm/rubies/ruby-2.1.5/lib/ruby/2.1.0/resolv.rb:1094:in `block (2 levels) in resolv'
from $HOME/.rvm/rubies/ruby-2.1.5/lib/ruby/2.1.0/resolv.rb:1093:in `each'
from $HOME/.rvm/rubies/ruby-2.1.5/lib/ruby/2.1.0/resolv.rb:1093:in `block in resolv'
from $HOME/.rvm/rubies/ruby-2.1.5/lib/ruby/2.1.0/resolv.rb:1091:in `each'
from $HOME/.rvm/rubies/ruby-2.1.5/lib/ruby/2.1.0/resolv.rb:1091:in `resolv'
from $HOME/.rvm/rubies/ruby-2.1.5/lib/ruby/2.1.0/resolv.rb:520:in `fetch_resource'
from $HOME/.rvm/rubies/ruby-2.1.5/lib/ruby/2.1.0/resolv.rb:510:in `each_resource'
from $HOME/.rvm/rubies/ruby-2.1.5/lib/ruby/2.1.0/resolv.rb:501:in `getresources'
~~~
I found out that 217.219.179.10 returns additional resources Resolv can not handle. You can test it with:
~~~
dig @8.8.8.8 wikileaks.org
dig @217.219.179.10 wikileaks.org
~~~
I have attached a pcap file with both queries and responses.
---Files--------------------------------
queries.pcap (991 Bytes)
--
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>