mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
segv on empty arrays
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/v1_1r@64 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
parent
01bb9da7ac
commit
6449abf51e
2 changed files with 10 additions and 1 deletions
|
@ -1,3 +1,7 @@
|
||||||
|
Wed Feb 4 13:55:26 1998 Yukihiro Matsumoto <matz@netlab.co.jp>
|
||||||
|
|
||||||
|
* array.c (ary_reverse): SEGV on empty array reverse.
|
||||||
|
|
||||||
Tue Feb 3 12:24:07 1998 Yukihiro Matsumoto <matz@netlab.co.jp>
|
Tue Feb 3 12:24:07 1998 Yukihiro Matsumoto <matz@netlab.co.jp>
|
||||||
|
|
||||||
* re.c (match_to_a): non matching element should be nil.
|
* re.c (match_to_a): non matching element should be nil.
|
||||||
|
|
7
array.c
7
array.c
|
@ -410,7 +410,7 @@ ary_indexes(ary, args)
|
||||||
VALUE new_ary;
|
VALUE new_ary;
|
||||||
int i = 0;
|
int i = 0;
|
||||||
|
|
||||||
if (!args || NIL_P(args)) {
|
if (!args || NIL_P(args) || RARRAY(args)->len == 0) {
|
||||||
return ary_new2(0);
|
return ary_new2(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -683,6 +683,8 @@ ary_reverse(ary)
|
||||||
VALUE *p1, *p2;
|
VALUE *p1, *p2;
|
||||||
VALUE tmp;
|
VALUE tmp;
|
||||||
|
|
||||||
|
if (RARRAY(ary)->len == 0) return ary;
|
||||||
|
|
||||||
p1 = RARRAY(ary)->ptr;
|
p1 = RARRAY(ary)->ptr;
|
||||||
p2 = p1 + RARRAY(ary)->len - 1; /* points last item */
|
p2 = p1 + RARRAY(ary)->len - 1; /* points last item */
|
||||||
|
|
||||||
|
@ -734,6 +736,8 @@ VALUE
|
||||||
ary_sort_bang(ary)
|
ary_sort_bang(ary)
|
||||||
VALUE ary;
|
VALUE ary;
|
||||||
{
|
{
|
||||||
|
if (RARRAY(ary)->len == 0) return ary;
|
||||||
|
|
||||||
ary_modify(ary);
|
ary_modify(ary);
|
||||||
qsort(RARRAY(ary)->ptr, RARRAY(ary)->len, sizeof(VALUE), iterator_p()?sort_1:sort_2);
|
qsort(RARRAY(ary)->ptr, RARRAY(ary)->len, sizeof(VALUE), iterator_p()?sort_1:sort_2);
|
||||||
return ary;
|
return ary;
|
||||||
|
@ -743,6 +747,7 @@ VALUE
|
||||||
ary_sort(ary)
|
ary_sort(ary)
|
||||||
VALUE ary;
|
VALUE ary;
|
||||||
{
|
{
|
||||||
|
if (RARRAY(ary)->len == 0) return ary;
|
||||||
return ary_sort_bang(ary_clone(ary));
|
return ary_sort_bang(ary_clone(ary));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue