Project

General

Profile

Actions

Bug #9110

closed

double free or corruption error at_exit with callcc

Added by Glass_saga (Masaki Matsushita) over 10 years ago. Updated about 10 years ago.

Status:
Closed
Target version:
-
ruby -v:
ruby 2.1.0dev (2013-11-14 trunk 43675) [x86_64-linux]
[ruby-core:58329]

Description

Following code causes double free or corruption error.

require "continuation"

c = nil
at_exit { c.call }
at_exit { callcc {|_c| c = _c } }


Files

patch.diff (1.25 KB) patch.diff defer xfree() of end_procs Glass_saga (Masaki Matsushita), 11/14/2013 01:12 PM

Updated by Glass_saga (Masaki Matsushita) over 10 years ago

  • Status changed from Open to Assigned
  • Assignee set to Glass_saga (Masaki Matsushita)
  • Backport changed from 1.9.3: UNKNOWN, 2.0.0: REQUIRED to 1.9.3: REQUIRED, 2.0.0: REQUIRED
Actions #2

Updated by Anonymous over 10 years ago

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

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


  • eval_jump.c (rb_exec_end_proc): fix double free or corruption error
    when reentering by callcc. [ruby-core:58329] [Bug #9110]

  • test/ruby/test_beginendblock.rb: test for above.

Updated by nagachika (Tomoyuki Chikanaga) over 10 years ago

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

r43685, r43690 and r43705 were backported to ruby_2_0_0 at r44325.

Updated by usa (Usaku NAKAMURA) about 10 years 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 r44740.

Actions

Also available in: Atom PDF

Like0
Like0Like0Like0Like0