summaryrefslogtreecommitdiff
path: root/re.c
diff options
context:
space:
mode:
Diffstat (limited to 're.c')
-rw-r--r--re.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/re.c b/re.c
index 99759c93d9..67ee4dfc1b 100644
--- a/re.c
+++ b/re.c
@@ -613,7 +613,10 @@ rb_reg_search(re, str, pos, reverse)
static struct re_registers regs;
int range;
- if (pos > RSTRING(str)->len) return -1;
+ if (pos > RSTRING(str)->len || pos < 0) {
+ rb_backref_set(Qnil);
+ return -1;
+ }
rb_reg_check(re);
if (may_need_recompile) rb_reg_prepare_re(re);