Backport #8424

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

Added by Tomoyuki Chikanaga 11 months ago. Updated 11 months ago.

[ruby-dev:47356]
Status:Closed
Priority:Normal
Assignee:Tomoyuki Chikanaga

Description

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

Associated revisions

Revision 41054
Added by Tomoyuki Chikanaga 11 months 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 Tomoyuki Chikanaga 11 months 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