summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authoryugui <yugui@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2009-07-15 12:01:14 +0000
committeryugui <yugui@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2009-07-15 12:01:14 +0000
commit9d1b64c781f526fb32724e0f05acde6496a9d50e (patch)
tree36b09802f056e454259b7ae03af719a676def910
parent11027a9f3465cc3be91010955057564f36c1d3d6 (diff)
downloadruby-9d1b64c781f526fb32724e0f05acde6496a9d50e.tar.gz
ruby-9d1b64c781f526fb32724e0f05acde6496a9d50e.tar.xz
ruby-9d1b64c781f526fb32724e0f05acde6496a9d50e.zip
merges r24103 from trunk into ruby_1_9_1.
-- Check pos and strlen on Regexp#index(str, pos) [ruby-core:23660] git-svn-id: http://svn.ruby-lang.org/repos/ruby/branches/ruby_1_9_1@24123 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r--ChangeLog5
-rw-r--r--string.c2
-rw-r--r--version.h2
3 files changed, 8 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog
index d84546363..26e329129 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -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 01:06:31 2009 Yusuke Endoh <mame@tsg.ne.jp>
* enumerator.c (yielder_yield_i): use rb_proc_new instead of
diff --git a/string.c b/string.c
index bf719b8ee..c27e5d486 100644
--- a/string.c
+++ b/string.c
@@ -2378,6 +2378,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));
diff --git a/version.h b/version.h
index 718c17f3b..5c9b411bb 100644
--- a/version.h
+++ b/version.h
@@ -4,7 +4,7 @@
#define RUBY_VERSION_MAJOR 1
#define RUBY_VERSION_MINOR 9
#define RUBY_VERSION_TEENY 1
-#define RUBY_PATCHLEVEL 236
+#define RUBY_PATCHLEVEL 237
#define RUBY_RELEASE_YEAR 2009
#define RUBY_RELEASE_MONTH 7
#define RUBY_RELEASE_DAY 12