diff options
author | Jeremy Evans <[email protected]> | 2022-01-04 09:13:19 -0800 |
---|---|---|
committer | Jeremy Evans <[email protected]> | 2022-01-04 10:03:18 -0800 |
commit | 9e0a91d0640600f2dfd7fc1d5fae6667019c9ca5 (patch) | |
tree | fb855c6b00e7bcf60f2f4d28342ad776c2fcbc01 /test/ruby/test_exception.rb | |
parent | e7806049c06f8e5a122d48b5454796c6ae6acac1 (diff) |
Don't segfault if Warning.warn is undefined
Check that there is a method entry for the method before passing
it to rb_method_entry_arity.
Fixes [Bug #18458]
Notes
Notes:
Merged: https://github.com/ruby/ruby/pull/5391
Diffstat (limited to 'test/ruby/test_exception.rb')
-rw-r--r-- | test/ruby/test_exception.rb | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/test/ruby/test_exception.rb b/test/ruby/test_exception.rb index 2985f75fd6..3be9b9aee0 100644 --- a/test/ruby/test_exception.rb +++ b/test/ruby/test_exception.rb @@ -1192,6 +1192,14 @@ $stderr = $stdout; raise "\x82\xa0"') do |outs, errs, status| assert_empty warning end + def test_undef_Warning_warn + assert_separately([], "#{<<-"begin;"}\n#{<<-"end;"}") + begin; + Warning.undef_method(:warn) + assert_raise(NoMethodError) { warn "" } + end; + end + def test_undefined_backtrace assert_separately([], "#{<<-"begin;"}\n#{<<-"end;"}") begin; |