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();