summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authornagachika <nagachika@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2015-11-24 15:49:21 +0000
committernagachika <nagachika@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2015-11-24 15:49:21 +0000
commite097b9b41b2e67000c80e34c349b197ef038a2a5 (patch)
treeb3ee040e4ef33f831fdf1b91ec5f96d4017b02a2
parent66b2b435bfb30a287b2b11f1a77a20bb59a4b026 (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--ChangeLog5
-rw-r--r--lib/ipaddr.rb4
-rw-r--r--test/test_ipaddr.rb24
-rw-r--r--version.h2
4 files changed, 21 insertions, 14 deletions
diff --git a/ChangeLog b/ChangeLog
index 9e013849d3..4351f38ae3 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -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
diff --git a/version.h b/version.h
index e2570ab34b..cb08b547b2 100644
--- a/version.h
+++ b/version.h
@@ -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