summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorhsbt <hsbt@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2015-10-23 07:35:14 +0000
committerhsbt <hsbt@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2015-10-23 07:35:14 +0000
commit2cd1f852e1404462f97a49856b1984d5dd49badc (patch)
treef18e3bac0b90cfc8c4b6dd89306479c5cacd9d17
parent2697fb4990935d7e6432ef2e142c03d7383264da (diff)
* 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
-rw-r--r--ChangeLog5
-rw-r--r--lib/ipaddr.rb4
-rw-r--r--test/test_ipaddr.rb2
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 <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]
+
Fri Oct 23 16:03:26 2015 SHIBATA Hiroshi <hsbt@ruby-lang.org>
* 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") }