diff --git a/ChangeLog b/ChangeLog index 5d8b46c31d..acee9ae225 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +Sun Mar 1 11:17:56 2015 Nobuyoshi Nakada + + * gc.c (id2ref): prohibit from accessing internal objects. + [ruby-core:68348] [Bug #10918] + Sun Mar 1 09:06:11 2015 Tanaka Akira * lib/time.rb (strptime): Support %s.%N. diff --git a/gc.c b/gc.c index c84da503ea..b843e7bb73 100644 --- a/gc.c +++ b/gc.c @@ -2761,6 +2761,9 @@ id2ref(VALUE obj, VALUE objid) if (!is_live_object(objspace, ptr)) { rb_raise(rb_eRangeError, "%p is recycled object", p0); } + if (RBASIC(ptr)->klass == 0) { + rb_raise(rb_eRangeError, "%p is internal object", p0); + } return (VALUE)ptr; }