Actions
Bug #18458
closedSegmentation fault when missing Warning#warn method
Description
If you remove the Warning#warn
method and call Kernel#warn
, you get a segmentation fault:
ruby 3.1.0:
$ ruby -e 'Warning.undef_method(:warn); warn ""' 2>&1 | head -2
<internal:warning>:51: [BUG] Segmentation fault at 0x0000000000000010
ruby 3.1.0p0 (2021-12-25 revision fb4df44d16) [x86_64-darwin21]
It's not new, you get the same with 3.0.3:
$ ruby -e 'Warning.undef_method(:warn); warn ""' 2>&1 | head -2
<internal:warning>:51: [BUG] Segmentation fault at 0x0000000000000010
ruby 3.0.3p157 (2021-11-24 revision 3fb7d2cadc) [x86_64-darwin20]
In 2.7 though you get a NoMethodError exception:
$ ruby --disable-all -e 'Warning.undef_method(:warn); warn ""'
Traceback (most recent call last):
1: from -e:1:in `<main>'
<internal:warning>:43:in `warn': undefined method `warn' for Warning:Module (NoMethodError)
(I disabled gems because rubygems core extensions adds two lines of backtrace, but it's the same result in the end)
Actions
Like0
Like0Like0Like0Like0Like0