From ab083dc64071992b42092ea8d5f8ee53b679933e Mon Sep 17 00:00:00 2001 From: nagachika Date: Wed, 26 Jan 2011 13:34:20 +0000 Subject: [PATCH] * vm_eval.c (rb_throw_obj): add GC guard to prevent intermediate variable from GC. [Bug #4322] [ruby-dev:43108] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@30657 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- ChangeLog | 5 +++++ vm_eval.c | 1 + 2 files changed, 6 insertions(+) diff --git a/ChangeLog b/ChangeLog index abd1eb324c..8406e97acf 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +Wed Jan 26 22:28:49 2011 CHIKANAGA Tomoyuki + + * vm_eval.c (rb_throw_obj): add GC guard to prevent intermediate + variable from GC. [Bug #4322] [ruby-dev:43108] + Wed Jan 26 17:08:59 2011 NAKAMURA, Hiroshi * ext/openssl/ossl_asn1.c (ossl_asn1_decode0): OpenSSL::ASN1.decode diff --git a/vm_eval.c b/vm_eval.c index c67e54c5e0..0dcbafad21 100644 --- a/vm_eval.c +++ b/vm_eval.c @@ -1438,6 +1438,7 @@ rb_throw_obj(VALUE tag, VALUE value) } if (!tt) { VALUE desc = rb_inspect(tag); + RB_GC_GUARD(desc); rb_raise(rb_eArgError, "uncaught throw %s", RSTRING_PTR(desc)); } rb_trap_restore_mask();