From 2cd1f852e1404462f97a49856b1984d5dd49badc Mon Sep 17 00:00:00 2001 From: hsbt Date: Fri, 23 Oct 2015 07:35:14 +0000 Subject: * 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/trunk@52244 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- ChangeLog | 5 +++++ lib/ipaddr.rb | 4 ++-- test/test_ipaddr.rb | 2 ++ 3 files changed, 9 insertions(+), 2 deletions(-) diff --git a/ChangeLog b/ChangeLog index c3c25ebc28..26b675cfb2 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +Fri Oct 23 16:35:08 2015 SHIBATA Hiroshi + + * lib/ipaddr.rb, test/test_ipaddr.rb: Reject invalid address contained + EOL string. Patch by @kachick [fix GH-942][Bug #11513] + Fri Oct 23 16:03:26 2015 SHIBATA Hiroshi * file.c: fix indent style. [fix GH-977] 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 ccf14735da..88b4a01bcb 100644 --- a/test/test_ipaddr.rb +++ b/test/test_ipaddr.rb @@ -73,6 +73,8 @@ class TC_IPAddr < Test::Unit::TestCase 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") } -- cgit v1.2.3