From a6ba688db3ce0376e6661c4aeed340a7ae6eb4fe Mon Sep 17 00:00:00 2001 From: nobu Date: Fri, 18 Jul 2014 14:24:48 +0000 Subject: [PATCH] array.c: array may be modified in the block * array.c (rb_ary_any_p): the array may be modified in the yielded block, do not access directly. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@46868 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- array.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/array.c b/array.c index 92897c4cea..5d327bc6be 100644 --- a/array.c +++ b/array.c @@ -5426,7 +5426,9 @@ rb_ary_any_p(VALUE ary) for (i = 0; i < len; ++i) if (RTEST(ptr[i])) return Qtrue; } else { - for (i = 0; i < len; ++i) if (RTEST(rb_yield(ptr[i]))) return Qtrue; + for (i = 0; i < RARRAY_LEN(ary); ++i) { + if (RTEST(rb_yield(RARRAY_AREF(ary, i)))) return Qtrue; + } } return Qfalse; }