diff --git a/ChangeLog b/ChangeLog index 8b1be1c5a9..4c7f624f7f 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +Thu May 21 09:49:01 2015 Nobuyoshi Nakada + + * gc.c (id2ref): prohibit from accessing internal objects. + [ruby-core:68348] [Bug #10918] + Thu May 21 09:46:58 2015 Rei Odaira * ext/pty/pty.c: AIX supports autopush. diff --git a/gc.c b/gc.c index f9048e031a..785a50d0ea 100644 --- a/gc.c +++ b/gc.c @@ -2332,6 +2332,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; } diff --git a/version.h b/version.h index e9e6afe790..4fc99cfb49 100644 --- a/version.h +++ b/version.h @@ -1,6 +1,6 @@ #define RUBY_VERSION "2.1.7" #define RUBY_RELEASE_DATE "2015-05-21" -#define RUBY_PATCHLEVEL 346 +#define RUBY_PATCHLEVEL 347 #define RUBY_RELEASE_YEAR 2015 #define RUBY_RELEASE_MONTH 5