From 1b327a0804614af77424657003dea3e77b01d2cb Mon Sep 17 00:00:00 2001 From: naruse Date: Mon, 18 Apr 2016 08:00:38 +0000 Subject: merge revision(s) 54465: [Backport #12237] * thread.c (update_coverage): Do not track coverage in loaded files after Coverage.result. Avoids out-of-bounds access. [Bug #12237] * ext/coverage/coverage.c (coverage_clear_result_i): document. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_3@54632 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- thread.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'thread.c') diff --git a/thread.c b/thread.c index c2ce8274e5..4e0340d801 100644 --- a/thread.c +++ b/thread.c @@ -4768,7 +4768,7 @@ update_coverage(rb_event_flag_t event, VALUE proc, VALUE self, ID id, VALUE klas if (coverage && RBASIC(coverage)->klass == 0) { long line = rb_sourceline() - 1; long count; - if (RARRAY_AREF(coverage, line) == Qnil) { + if (line >= RARRAY_LEN(coverage)) { /* no longer tracked */ return; } count = FIX2LONG(RARRAY_AREF(coverage, line)) + 1; -- cgit v1.2.3