diff options
author | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2015-12-08 14:33:11 +0000 |
---|---|---|
committer | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2015-12-08 14:33:11 +0000 |
commit | 6bbb46c94d812189e45106919879fbabf713890b (patch) | |
tree | ccfba3c14f3a42c8d7c255a7b2f802f45988647f | |
parent | f609bde5977498664079c6419422c6bc335ea5e2 (diff) | |
download | ruby-6bbb46c94d812189e45106919879fbabf713890b.tar.gz |
check loading object index range
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@52956 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r-- | compile.c | 3 |
1 files changed, 3 insertions, 0 deletions
@@ -7979,6 +7979,9 @@ ibf_load_object(const struct ibf_load *load, VALUE object_index) if (object_index == 0) { return Qnil; } + else if (object_index >= load->header->object_list_size) { + rb_raise(rb_eIndexError, "object index out of range: %"PRIdVALUE, object_index); + } else { VALUE obj = rb_ary_entry(load->obj_list, (long)object_index); if (obj == Qnil) { /* TODO: avoid multiple Qnil load */ |