mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
udpsocket.c: memory leaks
* ext/socket/udpsocket.c (udp_connect, udp_bind, udp_send): fix memory leaks at closed socket. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@52097 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
parent
24e5e37410
commit
38e6235235
3 changed files with 35 additions and 3 deletions
|
@ -69,4 +69,31 @@ class TestSocket_UDPSocket < Test::Unit::TestCase
|
|||
ensure
|
||||
u.close if u
|
||||
end
|
||||
|
||||
def test_bind_no_memory_leak
|
||||
assert_no_memory_leak(["-rsocket"], <<-"end;", <<-"end;", rss: true)
|
||||
s = UDPSocket.new
|
||||
s.close
|
||||
end;
|
||||
100_000.times {begin s.bind("127.0.0.1", 1) rescue IOError; end}
|
||||
end;
|
||||
end
|
||||
|
||||
def test_connect_no_memory_leak
|
||||
assert_no_memory_leak(["-rsocket"], <<-"end;", <<-"end;", rss: true)
|
||||
s = UDPSocket.new
|
||||
s.close
|
||||
end;
|
||||
100_000.times {begin s.connect("127.0.0.1", 1) rescue IOError; end}
|
||||
end;
|
||||
end
|
||||
|
||||
def test_send_no_memory_leak
|
||||
assert_no_memory_leak(["-rsocket"], <<-"end;", <<-"end;", rss: true)
|
||||
s = UDPSocket.new
|
||||
s.close
|
||||
end;
|
||||
100_000.times {begin s.send("\0"*100, 0, "127.0.0.1", 1) rescue IOError; end}
|
||||
end;
|
||||
end
|
||||
end if defined?(UDPSocket)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue