From: knu@... Date: 2017-10-22T05:25:53+00:00 Subject: [ruby-core:83493] [Ruby trunk Bug#5468][Closed] IPSocket#valid_v6? in ipaddr.rb contains incorrect regexps Issue #5468 has been updated by knu (Akinori MUSHA). Status changed from Assigned to Closed The parser has had updates and the given example IPv6 address in the above comment currently passes. ---------------------------------------- Bug #5468: IPSocket#valid_v6? in ipaddr.rb contains incorrect regexps https://bugs.ruby-lang.org/issues/5468#change-67503 * Author: jamesotron (James Harton) * Status: Closed * Priority: Normal * Assignee: knu (Akinori MUSHA) * Target version: next minor * ruby -v: ruby 1.9.2p290 (2011-07-09 revision 32553) [x86_64-darwin11.1.0] * Backport: 2.3: UNKNOWN, 2.4: UNKNOWN ---------------------------------------- Code to reproduce: require 'ipaddr' IPAddr.new('FF32:00FF:A12:34FF:FE56:7890::/96', Socket::AF_INET) # See RFC4489 Fails with: ArgumentError: invalid address from /Users/jnh/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/1.9.1/ipaddr.rb:477:in `rescue in initialize' from /Users/jnh/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/1.9.1/ipaddr.rb:474:in `initialize' from (irb):2:in `new' from (irb):2 from /Users/jnh/.rvm/rubies/ruby-1.9.2-p290/bin/irb:16:in `
' I have tested on both 1.9.2 and 1.8.7: ruby 1.9.2p290 (2011-07-09 revision 32553) [x86_64-darwin11.1.0] ruby 1.8.7 (2011-06-30 patchlevel 352) [i686-darwin11.2.0] Looking over #valid_v6 it appears that it contains a number of invalid regular expressions (IPv4 compatible IPv6 addressing was deprecated by RFC4291 in 2006 for example). I would suggest that all the regular expressions are removed and the operating systems inet_pton() call is used to validate it instead. -- https://bugs.ruby-lang.org/ Unsubscribe: