From 85c48fdc312a923c1bfe0ed88fa302d6417d9402 Mon Sep 17 00:00:00 2001 From: nagachika Date: Sun, 3 Aug 2014 16:28:20 +0000 Subject: merge revision(s) r46557,r46565: [Backport #9978] * hash.c (env_select): fix memory leak and crash on Windows, make keys array first instead of iterating on envrion directly. [ruby-dev:48325] [Bug #9978] keys array first instead of iterating on environ directly. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_1@47054 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- test/ruby/test_env.rb | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) (limited to 'test') diff --git a/test/ruby/test_env.rb b/test/ruby/test_env.rb index 5eb6717405..2b286de04e 100644 --- a/test/ruby/test_env.rb +++ b/test/ruby/test_env.rb @@ -418,4 +418,20 @@ class TestEnv < Test::Unit::TestCase v = (ENV[k] = 'bar'*5000 rescue 'bar'*1500) end; end + + def test_memory_leak_select + bug9978 = '[ruby-dev:48325] [Bug #9978]' + assert_no_memory_leak([], <<-'end;', "5_000.times {ENV.select {break}}", bug9978) + ENV.clear + k = 'FOO' + (ENV[k] = 'bar'*5000 rescue 'bar'*1500) + end; + end + + def test_memory_crash_select + assert_normal_exit(<<-'end;') + 1000.times {ENV["FOO#{i}"] = 'bar'} + ENV.select {ENV.clear} + end; + end end -- cgit v1.2.3