Bug #9178

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

Added by Hans Mackowiak over 1 year ago. Updated over 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 over 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 over 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 over 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 over 1 year ago

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

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 over 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 over 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 over 1 year ago

Maybe r39722 should be backported too.

#6 Updated by Tomoyuki Chikanaga over 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 over 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 over 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