diff options
author | nagachika <nagachika@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2015-11-24 15:49:21 +0000 |
---|---|---|
committer | nagachika <nagachika@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2015-11-24 15:49:21 +0000 |
commit | e097b9b41b2e67000c80e34c349b197ef038a2a5 (patch) | |
tree | b3ee040e4ef33f831fdf1b91ec5f96d4017b02a2 | |
parent | 66b2b435bfb30a287b2b11f1a77a20bb59a4b026 (diff) |
merge revision(s) 52244: [Backport #11513]
* lib/ipaddr.rb, test/test_ipaddr.rb: Reject invalid address contained
EOL string. Patch by @kachick [fix GH-942][Bug #11513]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_2@52741 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r-- | ChangeLog | 5 | ||||
-rw-r--r-- | lib/ipaddr.rb | 4 | ||||
-rw-r--r-- | test/test_ipaddr.rb | 24 | ||||
-rw-r--r-- | version.h | 2 |
4 files changed, 21 insertions, 14 deletions
@@ -1,3 +1,8 @@ +Wed Nov 25 00:47:07 2015 SHIBATA Hiroshi <hsbt@ruby-lang.org> + + * lib/ipaddr.rb, test/test_ipaddr.rb: Reject invalid address contained + EOL string. Patch by @kachick [fix GH-942][Bug #11513] + Wed Nov 25 00:32:44 2015 Nobuyoshi Nakada <nobu@ruby-lang.org> * compile.c (iseq_build_from_ary_body): register cdhash to the diff --git a/lib/ipaddr.rb b/lib/ipaddr.rb index 4b5f784ae0..b0df4d3e6f 100644 --- a/lib/ipaddr.rb +++ b/lib/ipaddr.rb @@ -410,7 +410,7 @@ class IPAddr # Set current netmask to given mask. def mask!(mask) if mask.kind_of?(String) - if mask =~ /^\d+$/ + if mask =~ /\A\d+\z/ prefixlen = mask.to_i else m = IPAddr.new(mask) @@ -478,7 +478,7 @@ class IPAddr end end prefix, prefixlen = addr.split('/') - if prefix =~ /^\[(.*)\]$/i + if prefix =~ /\A\[(.*)\]\z/i prefix = $1 family = Socket::AF_INET6 end diff --git a/test/test_ipaddr.rb b/test/test_ipaddr.rb index 5c5224740b..88b4a01bcb 100644 --- a/test/test_ipaddr.rb +++ b/test/test_ipaddr.rb @@ -69,15 +69,17 @@ class TC_IPAddr < Test::Unit::TestCase assert_equal("1:2:3:4:5:6:7:0", IPAddr.new("1:2:3:4:5:6:7::").to_s) assert_equal("0:2:3:4:5:6:7:8", IPAddr.new("::2:3:4:5:6:7:8").to_s) - assert_raises(IPAddr::InvalidAddressError) { IPAddr.new("192.168.0.256") } - assert_raises(IPAddr::InvalidAddressError) { IPAddr.new("192.168.0.011") } - assert_raises(IPAddr::InvalidAddressError) { IPAddr.new("fe80::1%fxp0") } - assert_raises(IPAddr::InvalidAddressError) { IPAddr.new("[192.168.1.2]/120") } - assert_raises(IPAddr::InvalidPrefixError) { IPAddr.new("::1/255.255.255.0") } - assert_raises(IPAddr::InvalidPrefixError) { IPAddr.new("::1/129") } - assert_raises(IPAddr::InvalidPrefixError) { IPAddr.new("192.168.0.1/33") } - assert_raises(IPAddr::AddressFamilyError) { IPAddr.new(1) } - assert_raises(IPAddr::AddressFamilyError) { IPAddr.new("::ffff:192.168.1.2/120", Socket::AF_INET) } + assert_raise(IPAddr::InvalidAddressError) { IPAddr.new("192.168.0.256") } + assert_raise(IPAddr::InvalidAddressError) { IPAddr.new("192.168.0.011") } + assert_raise(IPAddr::InvalidAddressError) { IPAddr.new("fe80::1%fxp0") } + assert_raise(IPAddr::InvalidAddressError) { IPAddr.new("[192.168.1.2]/120") } + assert_raise(IPAddr::InvalidAddressError) { IPAddr.new("[2001:200:300::]\nINVALID") } + assert_raise(IPAddr::InvalidAddressError) { IPAddr.new("192.168.0.1/32\nINVALID") } + assert_raise(IPAddr::InvalidPrefixError) { IPAddr.new("::1/255.255.255.0") } + assert_raise(IPAddr::InvalidPrefixError) { IPAddr.new("::1/129") } + assert_raise(IPAddr::InvalidPrefixError) { IPAddr.new("192.168.0.1/33") } + assert_raise(IPAddr::AddressFamilyError) { IPAddr.new(1) } + assert_raise(IPAddr::AddressFamilyError) { IPAddr.new("::ffff:192.168.1.2/120", Socket::AF_INET) } end def test_s_new_ntoh @@ -138,14 +140,14 @@ class TC_IPAddr < Test::Unit::TestCase def test_ip6_arpa assert_equal("f.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.2.0.0.0.5.0.5.0.e.f.f.3.ip6.arpa", IPAddr.new("3ffe:505:2::f").ip6_arpa) - assert_raises(IPAddr::InvalidAddressError) { + assert_raise(IPAddr::InvalidAddressError) { IPAddr.new("192.168.2.1").ip6_arpa } end def test_ip6_int assert_equal("f.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.2.0.0.0.5.0.5.0.e.f.f.3.ip6.int", IPAddr.new("3ffe:505:2::f").ip6_int) - assert_raises(IPAddr::InvalidAddressError) { + assert_raise(IPAddr::InvalidAddressError) { IPAddr.new("192.168.2.1").ip6_int } end @@ -1,6 +1,6 @@ #define RUBY_VERSION "2.2.4" #define RUBY_RELEASE_DATE "2015-11-25" -#define RUBY_PATCHLEVEL 197 +#define RUBY_PATCHLEVEL 198 #define RUBY_RELEASE_YEAR 2015 #define RUBY_RELEASE_MONTH 11 |