Bug #6655

Calling instance_methods after prepend causes VM crash

Added by Konstantin Haase almost 3 years ago. Updated almost 3 years ago.

[ruby-core:45915]
Status:Closed
Priority:Normal
Assignee:-
ruby -v:2.0.0 Backport:

Description

=begin

This code:

class Example
  prepend Module.new
  instance_methods
end

Causes the following crash on trunk:

example.rb:3: [BUG] Segmentation fault
ruby 2.0.0dev (2012-06-27 trunk 36234) [x86_64-darwin11.3.0]

-- Control frame information -----------------------------------------------
c:0004 p:---- s:0009 b:0009 e:000008 CFUNC  :instance_methods
c:0003 p:0034 s:0006 b:0006 e:000005 CLASS  example.rb:3
c:0002 p:0009 s:0004 b:0004 e:001b68 EVAL   example.rb:1 [FINISH]
c:0001 p:0000 s:0002 b:0002 e:001dc8 TOP    [FINISH]

example.rb:1:in `<main>'
example.rb:3:in `<class:Example>'
example.rb:3:in `instance_methods'

-- C level backtrace information -------------------------------------------

   See Crash Report log file under ~/Library/Logs/CrashReporter or
   /Library/Logs/CrashReporter, for the more detail of.

-- Other runtime information -----------------------------------------------

* Loaded script: example.rb

* Loaded features:

    0 enumerator.so
    1 /Users/konstantin/.rbenv/versions/2.0.0-dev/lib/ruby/2.0.0/x86_64-darwin11.3.0/enc/encdb.bundle
    2 /Users/konstantin/.rbenv/versions/2.0.0-dev/lib/ruby/2.0.0/x86_64-darwin11.3.0/enc/trans/transdb.bundle
    3 /Users/konstantin/.rbenv/versions/2.0.0-dev/lib/ruby/2.0.0/rubygems/defaults.rb
    4 /Users/konstantin/.rbenv/versions/2.0.0-dev/lib/ruby/2.0.0/x86_64-darwin11.3.0/rbconfig.rb
    5 /Users/konstantin/.rbenv/versions/2.0.0-dev/lib/ruby/2.0.0/rubygems/deprecate.rb
    6 /Users/konstantin/.rbenv/versions/2.0.0-dev/lib/ruby/2.0.0/rubygems/exceptions.rb
    7 /Users/konstantin/.rbenv/versions/2.0.0-dev/lib/ruby/2.0.0/rubygems/custom_require.rb
    8 /Users/konstantin/.rbenv/versions/2.0.0-dev/lib/ruby/2.0.0/rubygems.rb

[NOTE]
You may have encountered a bug in the Ruby interpreter or extension libraries.
Bug reports are welcome.
For details: http://www.ruby-lang.org/bugreport.html

[1]    5026 abort      ruby example.rb

=end

Associated revisions

Revision 36236
Added by Nobuyoshi Nakada almost 3 years ago

fix null m_tbl

  • class.c (class_instance_method_list): m_tbl in prepended class/module is NULL. [Bug #6655]

Revision 36236
Added by Nobuyoshi Nakada almost 3 years ago

fix null m_tbl

  • class.c (class_instance_method_list): m_tbl in prepended class/module is NULL. [Bug #6655]

History

#1 Updated by Nobuyoshi Nakada almost 3 years ago

  • Status changed from Open to Closed
  • % Done changed from 0 to 100

This issue was solved with changeset r36236.
Konstantin, thank you for reporting this issue.
Your contribution to Ruby is greatly appreciated.
May Ruby be with you.


fix null m_tbl

  • class.c (class_instance_method_list): m_tbl in prepended class/module is NULL. [Bug #6655]

Also available in: Atom PDF