Bug #9178

Segfault when misusing Enumerable#chunk with #to_enum and #with_index

Added by Hans Mackowiak about 1 year ago. Updated about 1 year ago.

[ruby-core:58692]
Status:Closed
Priority:High
Assignee:-
ruby -v:ruby 2.1.0dev (2013-11-28 trunk 43903) [x86_64-linux] Backport:1.9.3: DONE, 2.0.0: DONE

Description

[1].to_enum(:chunk).with_index {|c,i| i == 5}.to_a

does not crash on "ruby 2.0.0p0 (2013-02-24 revision 39474) [i686-linux]"

-- Control frame information -----------------------------------------------
c:0026 p:---- s:0089 e:000088 IFUNC
c:0025 p:---- s:0087 e:000086 CFUNC :call
c:0024 p:---- s:0085 e:000084 IFUNC
c:0023 p:---- s:0083 e:000082 CFUNC :each
c:0022 p:---- s:0081 e:000080 IFUNC
c:0021 p:---- s:0079 E:000420 CFUNC :each
c:0020 p:---- s:0077 e:000076 CFUNC :each
c:0019 p:---- s:0075 E:000300 CFUNC :to_a
c:0018 p:0012 s:0072 E:0022c8 EVAL (irb):2 [FINISH]
c:0017 p:---- s:0070 e:000069 CFUNC :eval
c:0016 p:0024 s:0063 e:000062 METHOD /usr/local/lib/ruby/2.1.0/irb/workspace.rb:86
c:0015 p:0025 s:0056 e:000054 METHOD /usr/local/lib/ruby/2.1.0/irb/context.rb:380
c:0014 p:0022 s:0050 e:000049 BLOCK /usr/local/lib/ruby/2.1.0/irb.rb:492
c:0013 p:0040 s:0042 e:000041 METHOD /usr/local/lib/ruby/2.1.0/irb.rb:624
c:0012 p:0009 s:0037 e:000036 BLOCK /usr/local/lib/ruby/2.1.0/irb.rb:489
c:0011 p:0118 s:0033 e:000032 BLOCK /usr/local/lib/ruby/2.1.0/irb/ruby-lex.rb:247 [FINISH]
c:0010 p:---- s:0030 e:000029 CFUNC :loop
c:0009 p:0007 s:0027 e:000026 BLOCK /usr/local/lib/ruby/2.1.0/irb/ruby-lex.rb:233 [FINISH]
c:0008 p:---- s:0025 e:000024 CFUNC :catch
c:0007 p:0015 s:0021 e:000020 METHOD /usr/local/lib/ruby/2.1.0/irb/ruby-lex.rb:232
c:0006 p:0030 s:0018 E:0022a8 METHOD /usr/local/lib/ruby/2.1.0/irb.rb:488
c:0005 p:0008 s:0015 e:000014 BLOCK /usr/local/lib/ruby/2.1.0/irb.rb:397 [FINISH]
c:0004 p:---- s:0013 e:000012 CFUNC :catch
c:0003 p:0143 s:0009 E:002318 METHOD /usr/local/lib/ruby/2.1.0/irb.rb:396
c:0002 p:0021 s:0004 E:000388 EVAL /usr/local/bin/irb:15 [FINISH]
c:0001 p:0000 s:0002 E:000b18 TOP [FINISH]

-- Ruby level backtrace information ----------------------------------------
/usr/local/bin/irb:15:in <main>'
/usr/local/lib/ruby/2.1.0/irb.rb:396:in
start'
/usr/local/lib/ruby/2.1.0/irb.rb:396:in catch'
/usr/local/lib/ruby/2.1.0/irb.rb:397:in
block in start'
/usr/local/lib/ruby/2.1.0/irb.rb:488:in eval_input'
/usr/local/lib/ruby/2.1.0/irb/ruby-lex.rb:232:in
each_top_level_statement'
/usr/local/lib/ruby/2.1.0/irb/ruby-lex.rb:232:in catch'
/usr/local/lib/ruby/2.1.0/irb/ruby-lex.rb:233:in
block in each_top_level_statement'
/usr/local/lib/ruby/2.1.0/irb/ruby-lex.rb:233:in loop'
/usr/local/lib/ruby/2.1.0/irb/ruby-lex.rb:247:in
block (2 levels) in each_top_level_statement'
/usr/local/lib/ruby/2.1.0/irb.rb:489:in block in eval_input'
/usr/local/lib/ruby/2.1.0/irb.rb:624:in
signal_status'
/usr/local/lib/ruby/2.1.0/irb.rb:492:in block (2 levels) in eval_input'
/usr/local/lib/ruby/2.1.0/irb/context.rb:380:in
evaluate'
/usr/local/lib/ruby/2.1.0/irb/workspace.rb:86:in evaluate'
/usr/local/lib/ruby/2.1.0/irb/workspace.rb:86:in
eval'
(irb):2:in irb_binding'
(irb):2:in
to_a'
(irb):2:in each'
(irb):2:in
each'
(irb):2:in each'
(irb):2:in
call'

-- C level backtrace information -------------------------------------------
/usr/local/bin/../lib/x86_64-linux/libruby.so.2.1(+0x1dd97c) [0x7f7d3fe4597c] vm_dump.c:683
/usr/local/bin/../lib/x86_64-linux/libruby.so.2.1(+0x768b3) [0x7f7d3fcde8b3] wstrops.c:237
/usr/local/bin/../lib/x86_64-linux/libruby.so.2.1(rb_bug+0xb3) [0x7f7d3fcdf503] wfileops.c:616
/usr/local/bin/../lib/x86_64-linux/libruby.so.2.1(+0x155586) [0x7f7d3fdbd586] ../sysdeps/x86_64/multiarch/memcpy-ssse3-back.S:728
/lib/x86_64-linux-gnu/libc.so.6(+0x36ff0) [0x7f7d3f8d6ff0] ../sysdeps/posix/killpg.c:37
/usr/local/bin/../lib/x86_64-linux/libruby.so.2.1(st_lookup+0x19) [0x7f7d3fdc5bd9] ../sysdeps/x86_64/multiarch/strcpy-ssse3.S:667
/usr/local/bin/../lib/x86_64-linux/libruby.so.2.1(+0x1c7a6f) [0x7f7d3fe2fa6f] vm_method.c:180
/usr/local/bin/../lib/x86_64-linux/libruby.so.2.1(+0x1d1ff4) [0x7f7d3fe39ff4] vm_eval.c:523
/usr/local/bin/../lib/x86_64-linux/libruby.so.2.1(rb_funcall+0xca) [0x7f7d3fe3a71a] vm_eval.c:585
/usr/local/bin/../lib/x86_64-linux/libruby.so.2.1(+0x71b7f) [0x7f7d3fcd9b7f] libioP.h:905
/usr/local/bin/../lib/x86_64-linux/libruby.so.2.1(+0x1d35e9) [0x7f7d3fe3b5e9] vm_insnhelper.c:2160
/usr/local/bin/../lib/x86_64-linux/libruby.so.2.1(+0x1d373f) [0x7f7d3fe3b73f] vm.c:715
/usr/local/bin/../lib/x86_64-linux/libruby.so.2.1(+0x1d377a) [0x7f7d3fe3b77a] vm.c:734
/usr/local/bin/../lib/x86_64-linux/libruby.so.2.1(+0x85e70) [0x7f7d3fcede70] proc.c:732
/usr/local/bin/../lib/x86_64-linux/libruby.so.2.1(+0x1d0c1f) [0x7f7d3fe38c1f] vm_eval.c:117
/usr/local/bin/../lib/x86_64-linux/libruby.so.2.1(+0x1d208b) [0x7f7d3fe3a08b] vm_eval.c:49
/usr/local/bin/../lib/x86_64-linux/libruby.so.2.1(rb_funcall+0xca) [0x7f7d3fe3a71a] vm_eval.c:585
/usr/local/bin/../lib/x86_64-linux/libruby.so.2.1(+0x6efce) [0x7f7d3fcd6fce] iofgetpos.c:51
/usr/local/bin/../lib/x86_64-linux/libruby.so.2.1(+0x1c931e) [0x7f7d3fe3131e] vm_insnhelper.c:2160
/usr/local/bin/../lib/x86_64-linux/libruby.so.2.1(rb_yield+0x407) [0x7f7d3fe3f8d7] vm.c:670
/usr/local/bin/../lib/x86_64-linux/libruby.so.2.1(rb_ary_each+0x52) [0x7f7d3fc96012] loadlocale.c:133
/usr/local/bin/../lib/x86_64-linux/libruby.so.2.1(+0x1d0c1f) [0x7f7d3fe38c1f] vm_eval.c:117
/usr/local/bin/../lib/x86_64-linux/libruby.so.2.1(+0x1d208b) [0x7f7d3fe3a08b] vm_eval.c:49
/usr/local/bin/../lib/x86_64-linux/libruby.so.2.1(rb_iterate+0x136) [0x7f7d3fe30936] vm_eval.c:1065
/usr/local/bin/../lib/x86_64-linux/libruby.so.2.1(rb_block_call+0x2b) [0x7f7d3fe30b1b] vm_eval.c:1147
/usr/local/bin/../lib/x86_64-linux/libruby.so.2.1(+0x6e472) [0x7f7d3fcd6472] printf-parsemb.c:168
/usr/local/bin/../lib/x86_64-linux/libruby.so.2.1(+0x1d35e9) [0x7f7d3fe3b5e9] vm_insnhelper.c:2160
/usr/local/bin/../lib/x86_64-linux/libruby.so.2.1(+0x1d373f) [0x7f7d3fe3b73f] vm.c:715
/usr/local/bin/../lib/x86_64-linux/libruby.so.2.1(+0x1d377a) [0x7f7d3fe3b77a] vm.c:734
/usr/local/bin/../lib/x86_64-linux/libruby.so.2.1(rb_proc_call+0x42) [0x7f7d3fcee992] mcheck.c:288
/usr/local/bin/../lib/x86_64-linux/libruby.so.2.1(+0x1d0c1f) [0x7f7d3fe38c1f] vm_eval.c:117
/usr/local/bin/../lib/x86_64-linux/libruby.so.2.1(+0x1d208b) [0x7f7d3fe3a08b] vm_eval.c:49
/usr/local/bin/../lib/x86_64-linux/libruby.so.2.1(rb_iterate+0x136) [0x7f7d3fe30936] vm_eval.c:1065
/usr/local/bin/../lib/x86_64-linux/libruby.so.2.1(rb_block_call+0x2b) [0x7f7d3fe30b1b] vm_eval.c:1147
/usr/local/bin/../lib/x86_64-linux/libruby.so.2.1(+0x1d0c1f) [0x7f7d3fe38c1f] vm_eval.c:117
/usr/local/bin/../lib/x86_64-linux/libruby.so.2.1(+0x1d208b) [0x7f7d3fe3a08b] vm_eval.c:49
/usr/local/bin/../lib/x86_64-linux/libruby.so.2.1(rb_iterate+0x136) [0x7f7d3fe30936] vm_eval.c:1065
/usr/local/bin/../lib/x86_64-linux/libruby.so.2.1(rb_block_call+0x2b) [0x7f7d3fe30b1b] vm_eval.c:1147
/usr/local/bin/../lib/x86_64-linux/libruby.so.2.1(+0x6c498) [0x7f7d3fcd4498] vfscanf.c:1159
/usr/local/bin/../lib/x86_64-linux/libruby.so.2.1(+0x1d4a41) [0x7f7d3fe3ca41] vm_insnhelper.c:1537
/usr/local/bin/../lib/x86_64-linux/libruby.so.2.1(+0x1cc05c) [0x7f7d3fe3405c] insns.def:1028
/usr/local/bin/../lib/x86_64-linux/libruby.so.2.1(+0x1cfc6c) [0x7f7d3fe37c6c] vm.c:1222
/usr/local/bin/../lib/x86_64-linux/libruby.so.2.1(+0x1d02c1) [0x7f7d3fe382c1] vm_eval.c:1275
/usr/local/bin/../lib/x86_64-linux/libruby.so.2.1(+0x1d086f) [0x7f7d3fe3886f] vm_eval.c:1316
/usr/local/bin/../lib/x86_64-linux/libruby.so.2.1(+0x1c7424) [0x7f7d3fe2f424] vm_insnhelper.c:1537
/usr/local/bin/../lib/x86_64-linux/libruby.so.2.1(+0x1cc05c) [0x7f7d3fe3405c] insns.def:1028
/usr/local/bin/../lib/x86_64-linux/libruby.so.2.1(+0x1cfc6c) [0x7f7d3fe37c6c] vm.c:1222
/usr/local/bin/../lib/x86_64-linux/libruby.so.2.1(+0x1d6fd1) [0x7f7d3fe3efd1] vm.c:667
/usr/local/bin/../lib/x86_64-linux/libruby.so.2.1(rb_rescue2+0xf7) [0x7f7d3fce71f7] malloc.c:2811
/usr/local/bin/../lib/x86_64-linux/libruby.so.2.1(+0x1c57fe) [0x7f7d3fe2d7fe] vm_eval.c:1029
/usr/local/bin/../lib/x86_64-linux/libruby.so.2.1(+0x1d4a41) [0x7f7d3fe3ca41] vm_insnhelper.c:1537
/usr/local/bin/../lib/x86_64-linux/libruby.so.2.1(+0x1cc645) [0x7f7d3fe34645] insns.def:999
/usr/local/bin/../lib/x86_64-linux/libruby.so.2.1(+0x1cfc6c) [0x7f7d3fe37c6c] vm.c:1222
/usr/local/bin/../lib/x86_64-linux/libruby.so.2.1(+0x1d7364) [0x7f7d3fe3f364] vm.c:667
/usr/local/bin/../lib/x86_64-linux/libruby.so.2.1(rb_catch_obj+0xdc) [0x7f7d3fe30e3c] vm_eval.c:1835
/usr/local/bin/../lib/x86_64-linux/libruby.so.2.1(+0x1c8f2e) [0x7f7d3fe30f2e] vm_eval.c:1810
/usr/local/bin/../lib/x86_64-linux/libruby.so.2.1(+0x1d4a41) [0x7f7d3fe3ca41] vm_insnhelper.c:1537
/usr/local/bin/../lib/x86_64-linux/libruby.so.2.1(+0x1cc645) [0x7f7d3fe34645] insns.def:999
/usr/local/bin/../lib/x86_64-linux/libruby.so.2.1(+0x1cfc6c) [0x7f7d3fe37c6c] vm.c:1222
/usr/local/bin/../lib/x86_64-linux/libruby.so.2.1(+0x1d7364) [0x7f7d3fe3f364] vm.c:667
/usr/local/bin/../lib/x86_64-linux/libruby.so.2.1(rb_catch_obj+0xdc) [0x7f7d3fe30e3c] vm_eval.c:1835
/usr/local/bin/../lib/x86_64-linux/libruby.so.2.1(+0x1c8f2e) [0x7f7d3fe30f2e] vm_eval.c:1810
/usr/local/bin/../lib/x86_64-linux/libruby.so.2.1(+0x1d4a41) [0x7f7d3fe3ca41] vm_insnhelper.c:1537
/usr/local/bin/../lib/x86_64-linux/libruby.so.2.1(+0x1cc645) [0x7f7d3fe34645] insns.def:999
/usr/local/bin/../lib/x86_64-linux/libruby.so.2.1(+0x1cfc6c) [0x7f7d3fe37c6c] vm.c:1222
/usr/local/bin/../lib/x86_64-linux/libruby.so.2.1(rb_iseq_eval_main+0x1f6) [0x7f7d3fe40bc6] vm.c:1480
/usr/local/bin/../lib/x86_64-linux/libruby.so.2.1(+0x7ca2a) [0x7f7d3fce4a2a] genops.c:481
/usr/local/bin/../lib/x86_64-linux/libruby.so.2.1(ruby_exec_node+0x1d) [0x7f7d3fce697d] hooks.c:192
/usr/local/bin/../lib/x86_64-linux/libruby.so.2.1(ruby_run_node+0x1c) [0x7f7d3fce8dec] arena.c:631
irb() [0x40088b]
/lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xf5) [0x7f7d3f8c1de5] libc-start.c:260
irb() [0x4008b9]

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

  • Loaded script: irb

  • Loaded features:

    0 enumerator.so
    1 /usr/local/lib/x86_64-linux/ruby/2.1.0/enc/encdb.so
    2 /usr/local/lib/x86_64-linux/ruby/2.1.0/enc/trans/transdb.so
    3 /usr/local/lib/x86_64-linux/ruby/2.1.0/rbconfig.rb
    4 /usr/local/lib/ruby/2.1.0/rubygems/compatibility.rb
    5 /usr/local/lib/ruby/2.1.0/rubygems/defaults.rb
    6 /usr/local/lib/ruby/2.1.0/rubygems/deprecate.rb
    7 /usr/local/lib/ruby/2.1.0/rubygems/errors.rb
    8 /usr/local/lib/ruby/2.1.0/rubygems/version.rb
    9 /usr/local/lib/ruby/2.1.0/rubygems/requirement.rb
    10 /usr/local/lib/ruby/2.1.0/rubygems/platform.rb
    11 /usr/local/lib/ruby/2.1.0/rubygems/basic_specification.rb
    12 /usr/local/lib/ruby/2.1.0/rubygems/stub_specification.rb
    13 /usr/local/lib/ruby/2.1.0/rubygems/util/stringio.rb
    14 /usr/local/lib/ruby/2.1.0/rubygems/specification.rb
    15 /usr/local/lib/ruby/2.1.0/rubygems/exceptions.rb
    16 /usr/local/lib/ruby/2.1.0/rubygems/core_ext/kernel_gem.rb
    17 /usr/local/lib/ruby/2.1.0/thread.rb
    18 /usr/local/lib/ruby/2.1.0/monitor.rb
    19 /usr/local/lib/ruby/2.1.0/rubygems/core_ext/kernel_require.rb
    20 /usr/local/lib/ruby/2.1.0/rubygems.rb
    21 /usr/local/lib/ruby/2.1.0/e2mmap.rb
    22 /usr/local/lib/ruby/2.1.0/irb/init.rb
    23 /usr/local/lib/ruby/2.1.0/irb/workspace.rb
    24 /usr/local/lib/ruby/2.1.0/irb/inspector.rb
    25 /usr/local/lib/ruby/2.1.0/irb/context.rb
    26 /usr/local/lib/ruby/2.1.0/irb/extend-command.rb
    27 /usr/local/lib/ruby/2.1.0/irb/output-method.rb
    28 /usr/local/lib/ruby/2.1.0/irb/notifier.rb
    29 /usr/local/lib/ruby/2.1.0/irb/slex.rb
    30 /usr/local/lib/ruby/2.1.0/irb/ruby-token.rb
    31 /usr/local/lib/ruby/2.1.0/irb/ruby-lex.rb
    32 /usr/local/lib/ruby/2.1.0/irb/src_encoding.rb
    33 /usr/local/lib/ruby/2.1.0/irb/magic-file.rb
    34 /usr/local/lib/x86_64-linux/ruby/2.1.0/readline.so
    35 /usr/local/lib/ruby/2.1.0/irb/input-method.rb
    36 /usr/local/lib/ruby/2.1.0/irb/locale.rb
    37 /usr/local/lib/ruby/2.1.0/irb.rb
    38 /usr/local/lib/ruby/2.1.0/rubygems/path_support.rb
    39 /usr/local/lib/ruby/2.1.0/rubygems/dependency.rb

  • Process memory map:

00400000-00401000 r-xp 00000000 fc:00 1704182 /usr/local/bin/ruby
00600000-00601000 r--p 00000000 fc:00 1704182 /usr/local/bin/ruby
00601000-00602000 rw-p 00001000 fc:00 1704182 /usr/local/bin/ruby
00a76000-0110e000 rw-p 00000000 00:00 0 [heap]
7f7d3de38000-7f7d3de4d000 r-xp 00000000 fc:00 21233808 /lib/x86_64-linux-gnu/libgcc_s.so.1
7f7d3de4d000-7f7d3e04c000 ---p 00015000 fc:00 21233808 /lib/x86_64-linux-gnu/libgcc_s.so.1
7f7d3e04c000-7f7d3e04d000 r--p 00014000 fc:00 21233808 /lib/x86_64-linux-gnu/libgcc_s.so.1
7f7d3e04d000-7f7d3e04e000 rw-p 00015000 fc:00 21233808 /lib/x86_64-linux-gnu/libgcc_s.so.1
7f7d3e050000-7f7d3e075000 r-xp 00000000 fc:00 21233833 /lib/x86_64-linux-gnu/libtinfo.so.5.9
7f7d3e075000-7f7d3e274000 ---p 00025000 fc:00 21233833 /lib/x86_64-linux-gnu/libtinfo.so.5.9
7f7d3e274000-7f7d3e278000 r--p 00024000 fc:00 21233833 /lib/x86_64-linux-gnu/libtinfo.so.5.9
7f7d3e278000-7f7d3e279000 rw-p 00028000 fc:00 21233833 /lib/x86_64-linux-gnu/libtinfo.so.5.9
7f7d3e280000-7f7d3e2b9000 r-xp 00000000 fc:00 21237156 /lib/x86_64-linux-gnu/libreadline.so.6.2
7f7d3e2b9000-7f7d3e4b9000 ---p 00039000 fc:00 21237156 /lib/x86_64-linux-gnu/libreadline.so.6.2
7f7d3e4b9000-7f7d3e4bb000 r--p 00039000 fc:00 21237156 /lib/x86_64-linux-gnu/libreadline.so.6.2
7f7d3e4bb000-7f7d3e4c1000 rw-p 0003b000 fc:00 21237156 /lib/x86_64-linux-gnu/libreadline.so.6.2
7f7d3e4c1000-7f7d3e4c2000 rw-p 00000000 00:00 0
7f7d3e4c8000-7f7d3e4cf000 r-xp 00000000 fc:00 1704284 /usr/local/lib/x86_64-linux/ruby/2.1.0/readline.so
7f7d3e4cf000-7f7d3e6cf000 ---p 00007000 fc:00 1704284 /usr/local/lib/x86_64-linux/ruby/2.1.0/readline.so
7f7d3e6cf000-7f7d3e6d0000 r--p 00007000 fc:00 1704284 /usr/local/lib/x86_64-linux/ruby/2.1.0/readline.so
7f7d3e6d0000-7f7d3e6d1000 rw-p 00008000 fc:00 1704284 /usr/local/lib/x86_64-linux/ruby/2.1.0/readline.so
7f7d3e6d8000-7f7d3e6da000 r-xp 00000000 fc:00 1704534 /usr/local/lib/x86_64-linux/ruby/2.1.0/enc/trans/transdb.so
7f7d3e6da000-7f7d3e8da000 ---p 00002000 fc:00 1704534 /usr/local/lib/x86_64-linux/ruby/2.1.0/enc/trans/transdb.so
7f7d3e8da000-7f7d3e8db000 r--p 00002000 fc:00 1704534 /usr/local/lib/x86_64-linux/ruby/2.1.0/enc/trans/transdb.so
7f7d3e8db000-7f7d3e8dc000 rw-p 00003000 fc:00 1704534 /usr/local/lib/x86_64-linux/ruby/2.1.0/enc/trans/transdb.so
7f7d3e8e0000-7f7d3e8e2000 r-xp 00000000 fc:00 1706321 /usr/local/lib/x86_64-linux/ruby/2.1.0/enc/encdb.so
7f7d3e8e2000-7f7d3eae1000 ---p 00002000 fc:00 1706321 /usr/local/lib/x86_64-linux/ruby/2.1.0/enc/encdb.so
7f7d3eae1000-7f7d3eae2000 r--p 00001000 fc:00 1706321 /usr/local/lib/x86_64-linux/ruby/2.1.0/enc/encdb.so
7f7d3eae2000-7f7d3eae3000 rw-p 00002000 fc:00 1706321 /usr/local/lib/x86_64-linux/ruby/2.1.0/enc/encdb.so
7f7d3eae8000-7f7d3ef2a000 r--p 00000000 fc:00 1310903 /usr/lib/locale/locale-archive
7f7d3ef30000-7f7d3f033000 r-xp 00000000 fc:00 21234075 /lib/x86_64-linux-gnu/libm-2.17.so
7f7d3f033000-7f7d3f232000 ---p 00103000 fc:00 21234075 /lib/x86_64-linux-gnu/libm-2.17.so
7f7d3f232000-7f7d3f233000 r--p 00102000 fc:00 21234075 /lib/x86_64-linux-gnu/libm-2.17.so
7f7d3f233000-7f7d3f234000 rw-p 00103000 fc:00 21234075 /lib/x86_64-linux-gnu/libm-2.17.so
7f7d3f238000-7f7d3f242000 r-xp 00000000 fc:00 21234088 /lib/x86_64-linux-gnu/libcrypt-2.17.so
7f7d3f242000-7f7d3f441000 ---p 0000a000 fc:00 21234088 /lib/x86_64-linux-gnu/libcrypt-2.17.so
7f7d3f441000-7f7d3f442000 r--p 00009000 fc:00 21234088 /lib/x86_64-linux-gnu/libcrypt-2.17.so
7f7d3f442000-7f7d3f443000 rw-p 0000a000 fc:00 21234088 /lib/x86_64-linux-gnu/libcrypt-2.17.so
7f7d3f443000-7f7d3f471000 rw-p 00000000 00:00 0
7f7d3f478000-7f7d3f47b000 r-xp 00000000 fc:00 21234090 /lib/x86_64-linux-gnu/libdl-2.17.so
7f7d3f47b000-7f7d3f67a000 ---p 00003000 fc:00 21234090 /lib/x86_64-linux-gnu/libdl-2.17.so
7f7d3f67a000-7f7d3f67b000 r--p 00002000 fc:00 21234090 /lib/x86_64-linux-gnu/libdl-2.17.so
7f7d3f67b000-7f7d3f67c000 rw-p 00003000 fc:00 21234090 /lib/x86_64-linux-gnu/libdl-2.17.so
7f7d3f680000-7f7d3f697000 r-xp 00000000 fc:00 21234091 /lib/x86_64-linux-gnu/libpthread-2.17.so
7f7d3f697000-7f7d3f897000 ---p 00017000 fc:00 21234091 /lib/x86_64-linux-gnu/libpthread-2.17.so
7f7d3f897000-7f7d3f898000 r--p 00017000 fc:00 21234091 /lib/x86_64-linux-gnu/libpthread-2.17.so
7f7d3f898000-7f7d3f899000 rw-p 00018000 fc:00 21234091 /lib/x86_64-linux-gnu/libpthread-2.17.so
7f7d3f899000-7f7d3f89d000 rw-p 00000000 00:00 0
7f7d3f8a0000-7f7d3fa5d000 r-xp 00000000 fc:00 21234089 /lib/x86_64-linux-gnu/libc-2.17.so
7f7d3fa5d000-7f7d3fc5d000 ---p 001bd000 fc:00 21234089 /lib/x86_64-linux-gnu/libc-2.17.so
7f7d3fc5d000-7f7d3fc61000 r--p 001bd000 fc:00 21234089 /lib/x86_64-linux-gnu/libc-2.17.so
7f7d3fc61000-7f7d3fc63000 rw-p 001c1000 fc:00 21234089 /lib/x86_64-linux-gnu/libc-2.17.so
7f7d3fc63000-7f7d3fc68000 rw-p 00000000 00:00 0
7f7d3fc68000-7f7d3ff10000 r-xp 00000000 fc:00 1704186 /usr/local/lib/x86_64-linux/libruby.so.2.1.0
7f7d3ff10000-7f7d4010f000 ---p 002a8000 fc:00 1704186 /usr/local/lib/x86_64-linux/libruby.so.2.1.0
7f7d4010f000-7f7d40114000 r--p 002a7000 fc:00 1704186 /usr/local/lib/x86_64-linux/libruby.so.2.1.0
7f7d40114000-7f7d40118000 rw-p 002ac000 fc:00 1704186 /usr/local/lib/x86_64-linux/libruby.so.2.1.0
7f7d40118000-7f7d4013d000 rw-p 00000000 00:00 0
7f7d40140000-7f7d40163000 r-xp 00000000 fc:00 21234078 /lib/x86_64-linux-gnu/ld-2.17.so
7f7d40224000-7f7d40328000 rw-p 00000000 00:00 0
7f7d40350000-7f7d40357000 r--s 00000000 fc:00 1713024 /usr/lib/x86_64-linux-gnu/gconv/gconv-modules.cache
7f7d4035b000-7f7d4035e000 rw-p 00000000 00:00 0
7f7d4035e000-7f7d4035f000 ---p 00000000 00:00 0
7f7d4035f000-7f7d40362000 rw-p 00000000 00:00 0
7f7d40362000-7f7d40363000 r--p 00022000 fc:00 21234078 /lib/x86_64-linux-gnu/ld-2.17.so
7f7d40363000-7f7d40365000 rw-p 00023000 fc:00 21234078 /lib/x86_64-linux-gnu/ld-2.17.so
7f7d40365000-7f7d40369000 rw-p 00000000 00:00 0
7fffb7f9e000-7fffb7fbf000 rw-p 00000000 00:00 0
7fffb8000000-7fffb8002000 r-xp 00000000 00:00 0 [vdso]
ffffffffff600000-ffffffffff601000 r-xp 00000000 00:00 0 [vsyscall]

Associated revisions

Revision 43929
Added by Nobuyoshi Nakada about 1 year ago

enumerator.c: should not store local variable address

  • enumerator.c (enumerator_with_index): should not store local variable address to memoise the arguments. it is invalidated after the return. [Bug #9178]

Revision 43929
Added by Nobuyoshi Nakada about 1 year ago

enumerator.c: should not store local variable address

  • enumerator.c (enumerator_with_index): should not store local variable address to memoise the arguments. it is invalidated after the return. [Bug #9178]

History

#1 Updated by Hans Mackowiak about 1 year ago

does also crash on
ruby 2.0.0p299 (2013-08-29) [x86_64-linux-gnu]
ruby 1.9.3p194 (2012-04-20 revision 35410) [x86_64-linux]

#2 Updated by Nobuyoshi Nakada about 1 year ago

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

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


enumerator.c: should not store local variable address

  • enumerator.c (enumerator_with_index): should not store local variable address to memoise the arguments. it is invalidated after the return. [Bug #9178]

#3 Updated by Tomoyuki Chikanaga about 1 year ago

  • Backport changed from 1.9.3: UNKNOWN, 2.0.0: UNKNOWN to 1.9.3: REQUIRED, 2.0.0: REQUIRED

#4 Updated by Tomoyuki Chikanaga about 1 year ago

  • Backport changed from 1.9.3: REQUIRED, 2.0.0: REQUIRED to 1.9.3: REQUIRED, 2.0.0: DONE

r43929 was backported to ruby_2_0_0 branch at r43961.
r39594 and r39596 were also required to backport. see #8010.

#5 Updated by Tomoyuki Chikanaga about 1 year ago

Maybe r39722 should be backported too.

#6 Updated by Tomoyuki Chikanaga about 1 year ago

  • Backport changed from 1.9.3: REQUIRED, 2.0.0: DONE to 1.9.3: REQUIRED, 2.0.0: REQUIRED

#7 Updated by Tomoyuki Chikanaga about 1 year ago

  • Backport changed from 1.9.3: REQUIRED, 2.0.0: REQUIRED to 1.9.3: REQUIRED, 2.0.0: DONE

r39722 was backported to ruby_2_0_0 branch at r44150.

#8 Updated by Usaku NAKAMURA about 1 year ago

  • Backport changed from 1.9.3: REQUIRED, 2.0.0: DONE to 1.9.3: DONE, 2.0.0: DONE

backported into ruby_1_9_3 at r44745.

Also available in: Atom PDF