Actions
Bug #12290
closedPossible segfault with Thread#name=
Status:
Closed
Assignee:
-
Target version:
-
ruby -v:
ruby 2.3.0p0 (2015-12-25 revision 53290)
Description
Ruby 2.3 added a Thread#name=, which may segfault when used incorrectly. This little program:
class SubClassedThread < Thread
def initialize()
self.name = 'foo'
super do
yield
end
end
end
SubClassedThread.new {}
Causes a segfault with both Ruby 2.3 (ruby 2.3.0p0 (2015-12-25 revision 53290)) and ruby-2.4.0-dev (ruby 2.4.0dev (2016-04-15 trunk 54594)). Moving the line that assignes the name in the block passed to super resolves the issue. Even thought there is a workaround, it shouldn't be possible to trigger a segfault from a script imho.
The relevant lines of the backtrace
/lib/i386-linux-gnu/i686/cmov/libpthread.so.0(pthread_setname_np+0x50) [0xf739ded0]
ruby(rb_thread_setname+0x95) [0xf755dc85] thread.c:2797
The system is a default Debian Jessie (32bit), with libc version 2.19-18+deb8u4.
Files
Actions
Like0
Like0Like0Like0Like0Like0Like0Like0