diff options
author | nagachika <nagachika@ruby-lang.org> | 2021-07-03 12:09:42 +0900 |
---|---|---|
committer | nagachika <nagachika@ruby-lang.org> | 2021-07-03 12:09:42 +0900 |
commit | 2aad080396f5b79a33502f1d812fb237968cb931 (patch) | |
tree | 0a6943608742d907151986d429c4f18f19c2df26 /test/ruby/test_regexp.rb | |
parent | 934001fb08ef133b2925f1651f36f83ddcd2f46d (diff) |
merge revision(s) 0846c2da457e7523819236ac7da492029b3ef73d,6c7cb00c094332a208cf36e5cd723a9ba60c41b8: [Backport #16376]
Check backref number buffer overrun [Bug #16376]
---
regcomp.c | 21 ++++++++++++---------
test/ruby/test_regexp.rb | 6 ++++++
2 files changed, 18 insertions(+), 9 deletions(-)
test/ruby/test_regexp.rb: Avoid "ambiguity between regexp and two
divisions"
---
test/ruby/test_regexp.rb | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
Diffstat (limited to 'test/ruby/test_regexp.rb')
-rw-r--r-- | test/ruby/test_regexp.rb | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/test/ruby/test_regexp.rb b/test/ruby/test_regexp.rb index 495c9de919..a9e0cdff0e 100644 --- a/test/ruby/test_regexp.rb +++ b/test/ruby/test_regexp.rb @@ -1312,6 +1312,12 @@ class TestRegexp < Test::Unit::TestCase assert_nil($1) end + def test_backref_overrun + assert_raise_with_message(SyntaxError, /invalid backref number/) do + eval(%["".match(/(())(?<X>)((?(90000)))/)]) + end + end + # This assertion is for porting x2() tests in testpy.py of Onigmo. def assert_match_at(re, str, positions, msg = nil) re = Regexp.new(re) unless re.is_a?(Regexp) |