#1260: Segfault occurs when parses a RSS content with bundled RSS library. ----------------------------------+----------------------------------------- Reporter: watson1978@… | Owner: lsansonetti@… Type: defect | Status: new Priority: blocker | Milestone: Component: MacRuby | Keywords: ----------------------------------+----------------------------------------- Test Script: {{{ #!ruby require 'rss' require 'open-uri' url = "http://images.apple.com/main/rss/hotnews/hotnews.rss" data = "" open(url) do |f| data = f.read end puts "* fetched RSS" rss = RSS::Parser.parse(data, false) puts "* Parsed RSS" }}} Result: {{{ $ ruby19 tt.rb * fetched RSS * Parsed RSS $ macruby tt.rb * fetched RSS zsh: segmentation fault macruby tt.rb }}} BackTrace: {{{ Program received signal EXC_BAD_ACCESS, Could not access memory. Reason: KERN_PROTECTION_FAILURE at address: 0x00007fff5f3fffe8 0x00000001001521a3 in std::_Rb_tree<objc_selector*, std::pair<objc_selector* const, std::map<objc_class*, rb_vm_method_source_t*, std::less<objc_class*>, std::allocator<std::pair<objc_class* const, rb_vm_method_source_t*> > >*>, std::_Select1st<std::pair<objc_selector* const, std::map<objc_class*, rb_vm_method_source_t*, std::less<objc_class*>, std::allocator<std::pair<objc_class* const, rb_vm_method_source_t*> > >*>
, std::less<objc_selector*>, std::allocator<std::pair<objc_selector* const, std::map<objc_class*, rb_vm_method_source_t*, std::less<objc_class*>, std::allocator<std::pair<objc_class* const, rb_vm_method_source_t*> > >*> > >::_S_key (__x=Cannot access memory at address 0x7fff5f3fffe8 ) at stl_tree.h:499 499 _S_key(_Const_Link_type __x) (gdb) bt 20 #0 0x00000001001521a3 in std::_Rb_tree<objc_selector*, std::pair<objc_selector* const, std::map<objc_class*, rb_vm_method_source_t*, std::less<objc_class*>, std::allocator<std::pair<objc_class* const, rb_vm_method_source_t*> > >*>, std::_Select1st<std::pair<objc_selector* const, std::map<objc_class*, rb_vm_method_source_t*, std::less<objc_class*>, std::allocator<std::pair<objc_class* const, rb_vm_method_source_t*> > >*> , std::less<objc_selector*>, std::allocator<std::pair<objc_selector* const, std::map<objc_class*, rb_vm_method_source_t*, std::less<objc_class*>, std::allocator<std::pair<objc_class* const, rb_vm_method_source_t*> > >*> > >::_S_key (__x=Cannot access memory at address 0x7fff5f3fffe8 ) at stl_tree.h:499 #1 0x00000001001522f5 in std::_Rb_tree<objc_selector*, std::pair<objc_selector* const, std::map<objc_class*, rb_vm_method_source_t*, std::less<objc_class*>, std::allocator<std::pair<objc_class* const, rb_vm_method_source_t*> > >*>, std::_Select1st<std::pair<objc_selector* const, std::map<objc_class*, rb_vm_method_source_t*, std::less<objc_class*>, std::allocator<std::pair<objc_class* const, rb_vm_method_source_t*> > >*> , std::less<objc_selector*>, std::allocator<std::pair<objc_selector* const, std::map<objc_class*, rb_vm_method_source_t*, std::less<objc_class*>, std::allocator<std::pair<objc_class* const, rb_vm_method_source_t*> > >*> > >::find (this=0x102068418, __k=@0x7fff5f4000b0) at stl_tree.h:1378 #2 0x00000001001523b9 in std::map<objc_selector*, std::map<objc_class*, rb_vm_method_source_t*, std::less<objc_class*>, std::allocator<std::pair<objc_class* const, rb_vm_method_source_t*> > >*, std::less<objc_selector*>, std::allocator<std::pair<objc_selector* const, std::map<objc_class*, rb_vm_method_source_t*, std::less<objc_class*>, std::allocator<std::pair<objc_class* const, rb_vm_method_source_t*> > >*>
::find (this=0x102068418, __x=@0x7fff5f4000b0) at stl_map.h:542 #3 0x000000010015ec64 in RoxorCore::method_sources_for_sel (this=0x102068200, sel=0x7fff8877f560, create=false) at vm.h:897 #4 0x0000000100146ff2 in rb_vm_resolve_method (klass=0x200017d60, sel=0x7fff8877f560) at vm.cpp:2090 #5 0x00000001001470dc in resolveInstanceMethod_imp (self=0x200017d60, sel=0x7fff88878585, name=0x7fff8877f560) at vm.cpp:5156 #6 0x00007fff840a2937 in _class_resolveMethod () #7 0x000000010012ab53 in rb_vm_super_lookup (klass=0x20040f580, sel=0x7fff8877f560, super_class_p=0x7fff5f400940) at dispatcher.cpp:316 #8 0x000000010012d167 in rb_vm_dispatch () at dispatcher.cpp:631 #9 0x00000001017009c4 in ?? () #10 0x00000001017219fe in ?? () #11 0x000000010012e65a in __rb_vm_rcall [inlined] () at /Users/watson/src /macruby-trunk/dispatcher.cpp:161 #12 0x000000010012e65a in ruby_dispatch [inlined] () at /Users/watson/src /macruby-trunk/dispatcher.cpp:466 #13 0x000000010012e65a in rb_vm_dispatch () at dispatcher.cpp:872 #14 0x00000001017009c4 in ?? () #15 0x00000001017219fe in ?? () #16 0x000000010012e65a in __rb_vm_rcall [inlined] () at /Users/watson/src /macruby-trunk/dispatcher.cpp:161 #17 0x000000010012e65a in ruby_dispatch [inlined] () at /Users/watson/src /macruby-trunk/dispatcher.cpp:466 #18 0x000000010012e65a in rb_vm_dispatch () at dispatcher.cpp:872 #19 0x00000001017009c4 in ?? () (More stack frames follow...) (gdb) }}}
-- Ticket URL: <http://www.macruby.org/trac/ticket/1260> MacRuby <http://macruby.org/>