From ff41663403d3eb76d95f465cb94e14d2faaa04d1 Mon Sep 17 00:00:00 2001 From: Kazuki Tsujimoto Date: Tue, 19 Nov 2019 09:35:47 -0600 Subject: Fix memory corruption in Enumerable#reverse_each [ruby-dev:50867] [Bug #16354] --- test/ruby/test_enum.rb | 13 +++++++++++++ 1 file changed, 13 insertions(+) (limited to 'test') diff --git a/test/ruby/test_enum.rb b/test/ruby/test_enum.rb index 5fbb2d3663..7b647231c8 100644 --- a/test/ruby/test_enum.rb +++ b/test/ruby/test_enum.rb @@ -735,6 +735,19 @@ class TestEnumerable < Test::Unit::TestCase assert_equal([2,1,3,2,1], @obj.reverse_each.to_a) end + def test_reverse_each_memory_corruption + bug16354 = '[ruby-dev:50867]' + assert_normal_exit %q{ + size = 1000 + (0...size).reverse_each do |i| + i.inspect + ObjectSpace.each_object(Array) do |a| + a.clear if a.length == size + end + end + }, bug16354 + end + def test_chunk e = [].chunk {|elt| true } assert_equal([], e.to_a) -- cgit v1.2.3