diff options
author | aamine <aamine@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2006-07-26 09:41:08 +0000 |
---|---|---|
committer | aamine <aamine@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2006-07-26 09:41:08 +0000 |
commit | c9500ee8d94e0ff1ac600b14998ba23bc7e743ef (patch) | |
tree | 75894d87f62acf79acb966820e1dca8127fea1ff /ext/strscan | |
parent | c0a80890440ff24e8dbd704204856d62feb3142c (diff) |
* ext/strscan/strscan.c (strscan_do_scan): always return nil if p->curr exceeds string size.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@10610 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'ext/strscan')
-rw-r--r-- | ext/strscan/strscan.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/ext/strscan/strscan.c b/ext/strscan/strscan.c index dcb70a7747..9529bc3693 100644 --- a/ext/strscan/strscan.c +++ b/ext/strscan/strscan.c @@ -1,7 +1,7 @@ /* $Id$ - Copyright (c) 1999-2005 Minero Aoki + Copyright (c) 1999-2006 Minero Aoki This program is free software. You can distribute/modify this program under the terms of @@ -401,6 +401,9 @@ strscan_do_scan(VALUE self, VALUE regex, int succptr, int getstr, int headonly) GET_SCANNER(self, p); CLEAR_MATCH_STATUS(p); + if (S_RESTLEN(p) < 0) { + return Qnil; + } if (headonly) { ret = onig_match(RREGEXP(regex)->ptr, (UChar* )CURPTR(p), (UChar* )(CURPTR(p) + S_RESTLEN(p)), |