From 121d59ffa98d20b20e849b4c7333a723803f6798 Mon Sep 17 00:00:00 2001 From: Ross Lagerwall Date: Sat, 7 Jul 2012 18:40:32 +0200 Subject: #15277: Fix a resource leak in support.py when IPv6 is disabled. The leak occurred by setting: echo 1 > /proc/sys/net/ipv6/conf/all/disable_ipv6 before running test_support. Patch by Brian Brazil. --- Lib/test/support.py | 8 +++++--- Misc/NEWS | 6 ++++++ 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/Lib/test/support.py b/Lib/test/support.py index ddd3ab6..2d7f70d 100644 --- a/Lib/test/support.py +++ b/Lib/test/support.py @@ -493,14 +493,16 @@ def bind_port(sock, host=HOST): def _is_ipv6_enabled(): """Check whether IPv6 is enabled on this host.""" if socket.has_ipv6: + sock = None try: sock = socket.socket(socket.AF_INET6, socket.SOCK_STREAM) sock.bind(('::1', 0)) + return True except (socket.error, socket.gaierror): pass - else: - sock.close() - return True + finally: + if sock: + sock.close() return False IPV6_ENABLED = _is_ipv6_enabled() diff --git a/Misc/NEWS b/Misc/NEWS index a109baf..dada87b 100644 --- a/Misc/NEWS +++ b/Misc/NEWS @@ -74,6 +74,12 @@ Tools/Demos * C frames that are garbage-collecting * C frames that are due to the invocation of a PyCFunction +Tests +----- + +- Issue #15277: Fix a resource leak in support.py when IPv6 is disabled. + Patch by Brian Brazil. + Build ----- -- cgit v0.12