summaryrefslogtreecommitdiff
path: root/variable.c
diff options
context:
space:
mode:
authorNobuyoshi Nakada <nobu@ruby-lang.org>2019-07-01 13:56:55 +0900
committerNobuyoshi Nakada <nobu@ruby-lang.org>2019-07-01 13:56:55 +0900
commit99dc885974bfe637f3e74f52efdbbf77d66d0d68 (patch)
tree5ac459dc3dcb36217fe674a0936ed4f8d361315b /variable.c
parent6982a9049ede1386fdfa10734f953867824ebe05 (diff)
Fixed inadvertent ID creation in rb_iv_get
Diffstat (limited to 'variable.c')
-rw-r--r--variable.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/variable.c b/variable.c
index a6910985fa..b902fef003 100644
--- a/variable.c
+++ b/variable.c
@@ -3361,8 +3361,13 @@ rb_mod_remove_cvar(VALUE mod, VALUE name)
VALUE
rb_iv_get(VALUE obj, const char *name)
{
- ID id = rb_intern(name);
+ ID id = rb_check_id_cstr(name, strlen(name), rb_usascii_encoding());
+ if (!id) {
+ if (RTEST(ruby_verbose))
+ rb_warning("instance variable %s not initialized", name);
+ return Qnil;
+ }
return rb_ivar_get(obj, id);
}