mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
* array.c (rb_ary_subseq): need integer overflow check.
[ruby-dev:31736] * array.c (rb_ary_splice): ditto. [ruby-dev:31737] * array.c (rb_ary_fill): ditto. [ruby-dev:31738] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@13345 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
parent
6ed97e9294
commit
d84ece5c1c
2 changed files with 8 additions and 4 deletions
|
|
@ -1,7 +1,11 @@
|
|||
Wed Sep 5 22:02:27 2007 Yukihiro Matsumoto <matz@ruby-lang.org>
|
||||
|
||||
* array.c (rb_ary_fill): need integer overflow check.
|
||||
[ruby-dev:31738]
|
||||
* array.c (rb_ary_subseq): need integer overflow check.
|
||||
[ruby-dev:31736]
|
||||
|
||||
* array.c (rb_ary_splice): ditto. [ruby-dev:31737]
|
||||
|
||||
* array.c (rb_ary_fill): ditto. [ruby-dev:31738]
|
||||
|
||||
* string.c (rb_str_splice): integer overflow for length.
|
||||
[ruby-dev:31739]
|
||||
|
|
|
|||
4
array.c
4
array.c
|
|
@ -606,7 +606,7 @@ rb_ary_subseq(ary, beg, len)
|
|||
if (beg > RARRAY(ary)->len) return Qnil;
|
||||
if (beg < 0 || len < 0) return Qnil;
|
||||
|
||||
if (beg + len > RARRAY(ary)->len) {
|
||||
if (RARRAY(ary)->len < len || RARRAY(ary)->len < beg + len) {
|
||||
len = RARRAY(ary)->len - beg;
|
||||
if (len < 0)
|
||||
len = 0;
|
||||
|
|
@ -959,7 +959,7 @@ rb_ary_splice(ary, beg, len, rpl)
|
|||
rb_raise(rb_eIndexError, "index %ld out of array", beg);
|
||||
}
|
||||
}
|
||||
if (beg + len > RARRAY(ary)->len) {
|
||||
if (RARRAY(ary)->len < len || RARRAY(ary)->len < beg + len) {
|
||||
len = RARRAY(ary)->len - beg;
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue