diff options
author | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2017-03-07 05:48:15 +0000 |
---|---|---|
committer | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2017-03-07 05:48:15 +0000 |
commit | 72f8df158f68581bcb4484330abab1ae8cf7acc7 (patch) | |
tree | 43c1dfd4d2c94e5f24c67dab03fe74a0b89d748e | |
parent | a298301baafd18be58bc51c42eb234de03d6b420 (diff) |
string.c: fix integer overflow
* string.c (rb_str_subpos): fix integer overflow which can happen
only when SHARABLE_MIDDLE_SUBSTRING is enabled. incorpolate
https://github.com/mruby/mruby/commit/7db0786abdd243ba031e24683f
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@57797 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r-- | string.c | 2 |
1 files changed, 1 insertions, 1 deletions
@@ -2386,7 +2386,7 @@ rb_str_subpos(VALUE str, long beg, long *lenp) beg += blen; if (beg < 0) return 0; } - if (beg + len > blen) + if (len > blen - beg) len = blen - beg; if (len < 0) return 0; p = s + beg; |