diff options
Diffstat (limited to 'string.c')
| -rw-r--r-- | string.c | 8 |
1 files changed, 6 insertions, 2 deletions
@@ -3880,8 +3880,10 @@ rb_str_index_m(int argc, VALUE *argv, VALUE str) } if (RB_TYPE_P(sub, T_REGEXP)) { - if (pos > str_strlen(str, NULL)) + if (pos > str_strlen(str, NULL)) { + rb_backref_set(Qnil); return Qnil; + } pos = str_offset(RSTRING_PTR(str), RSTRING_END(str), pos, rb_enc_check(str, sub), single_byte_optimizable(str)); @@ -3989,8 +3991,10 @@ rb_str_byteindex_m(int argc, VALUE *argv, VALUE str) } if (RB_TYPE_P(sub, T_REGEXP)) { - if (pos > RSTRING_LEN(str)) + if (pos > RSTRING_LEN(str)) { + rb_backref_set(Qnil); return Qnil; + } if (rb_reg_search(sub, str, pos, 0) < 0) { return Qnil; } |
