Backport #7896

Can't test rb_iter_break with extensions

Added by Yui NARUSE about 1 year ago. Updated about 1 year ago.

[ruby-core:52607]
Status:Closed
Priority:Normal
Assignee:-

Description

If you test rbiterbreak() with some extension library like trunk's ext/-test-/iter/break.c, it will cause SEGV on 1.9.3.
It won't happen on 2.0 because r34369 is accidentally fix it with below patch.

I noticed this because RubySpec added a test for rbspeciter (4db31b04954118e66ac1d6353ebf4106cb2b419b) and hit this.

% svn di

Index: vm.c

--- vm.c (revision 39346)
+++ vm.c (working copy)
@@ -1370,6 +1370,7 @@
*th->cfp->sp++ = (GETTHROWOBJVAL(err));
#endif
}
+ th->state = 0;
th->errinfo = Qnil;
goto vmloopstart;
}

Associated revisions

Revision 39381
Added by Usaku NAKAMURA about 1 year ago

  • vm.c (vmexec): get rid of a SEGV when calling rbiter_break() from some extention libraries. [Backport #7896]

History

#1 Updated by Usaku NAKAMURA about 1 year ago

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

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


  • vm.c (vmexec): get rid of a SEGV when calling rbiter_break() from some extention libraries. [Backport #7896]

Also available in: Atom PDF