aboutsummaryrefslogtreecommitdiffstats
path: root/test/ruby/test_regexp.rb
diff options
context:
space:
mode:
authorKazuki Yamaguchi <k@rhe.jp>2016-11-15 16:53:51 +0900
committerKazuki Yamaguchi <k@rhe.jp>2016-11-19 13:55:50 +0000
commite6720063c6503ba273674735703c5aa3591beef3 (patch)
tree4e675ee3f085397a3f9b1a6940240366ba95c5ca /test/ruby/test_regexp.rb
parent104dd8c92fb2f029a1ae1a44377d552e29d729de (diff)
downloadruby-e6720063c6503ba273674735703c5aa3591beef3.tar.gz
re.c: make MatchData#hash and #== check the MatchData is initialized
Fix possible segfaults that can occur if they are called against an uninitialized MatchData. MatchData#hash now calls match_check() before dereferencing the String, and MatchData#== (#eql?) checks that RMatch::regexp is non-zero.
Diffstat (limited to 'test/ruby/test_regexp.rb')
-rw-r--r--test/ruby/test_regexp.rb1
1 files changed, 1 insertions, 0 deletions
diff --git a/test/ruby/test_regexp.rb b/test/ruby/test_regexp.rb
index 4853c41b86..b0da247f4f 100644
--- a/test/ruby/test_regexp.rb
+++ b/test/ruby/test_regexp.rb
@@ -941,6 +941,7 @@ class TestRegexp < Test::Unit::TestCase
assert_raise(TypeError) { MatchData.allocate.to_s }
assert_match(/^#<MatchData:.*>$/, MatchData.allocate.inspect)
assert_raise(TypeError) { MatchData.allocate.string }
+ assert_raise(TypeError) { MatchData.allocate.hash }
$~ = MatchData.allocate
assert_raise(TypeError) { $& }
assert_raise(TypeError) { $` }