Project

General

Profile

Backport #8424

backport r40806 (fix infinite loop when stack overflow with TH_PUSH_TAG())

Added by nagachika (Tomoyuki Chikanaga) over 6 years ago. Updated over 6 years ago.

Status:
Closed
Priority:
Normal
[ruby-dev:47356]

Description

r40806 で TH_PUSH_TAG() で push した rb_vm_tag の途中でスタックがあふれた時に無限ループに陥るという現象が修正されているのでバックポートが必要です。 1.9.3 も?
なお conflict を避けるために r40791 も必要と思われます。

Associated revisions

Revision e6ae0db3
Added by nagachika (Tomoyuki Chikanaga) over 6 years ago

merge revision(s) 40791,40806: [Backport #8424]

    * eval_intern.h (TH_PUSH_TAG): ensure jmpbuf to be accessible before
      pushing tag to get rid of unaccessible tag by stack overflow.

    * vm_core.h (rb_vm_tag): move jmpbuf between tag and prev so ensure to
      be accessible.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_0_0@41054 b2dd03c8-39d4-4d8f-98ff-823fe69b080e

Revision 41054
Added by nagachika (Tomoyuki Chikanaga) over 6 years ago

merge revision(s) 40791,40806: [Backport #8424]

* eval_intern.h (TH_PUSH_TAG): ensure jmpbuf to be accessible before
  pushing tag to get rid of unaccessible tag by stack overflow.

* vm_core.h (rb_vm_tag): move jmpbuf between tag and prev so ensure to
  be accessible.

History

#1

Updated by nagachika (Tomoyuki Chikanaga) over 6 years ago

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

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


merge revision(s) 40791,40806: [Backport #8424]

* eval_intern.h (TH_PUSH_TAG): ensure jmpbuf to be accessible before
  pushing tag to get rid of unaccessible tag by stack overflow.

* vm_core.h (rb_vm_tag): move jmpbuf between tag and prev so ensure to
  be accessible.

Also available in: Atom PDF