diff options
-rw-r--r-- | ChangeLog | 5 | ||||
-rw-r--r-- | string.c | 2 |
2 files changed, 7 insertions, 0 deletions
@@ -1,3 +1,8 @@ +Tue Jul 14 17:29:20 2009 NARUSE, Yui <naruse@ruby-lang.org> + + * string.c (rb_str_index_m): return nil if pos is out of string. + [ruby-core:23660] + Tue Jul 14 16:13:04 2009 Nobuyoshi Nakada <nobu@ruby-lang.org> * io.c (rb_io_initialize): check if the descriptor can be accessed @@ -2569,6 +2569,8 @@ rb_str_index_m(int argc, VALUE *argv, VALUE str) switch (TYPE(sub)) { case T_REGEXP: + if (pos > str_strlen(str, STR_ENC_GET(str))) + return Qnil; pos = str_offset(RSTRING_PTR(str), RSTRING_END(str), pos, rb_enc_check(str, sub), single_byte_optimizable(str)); |