From: Ross Lagerwall Date: Sat, 7 Jul 2012 16:40:32 +0000 (+0200) Subject: #15277: Fix a resource leak in support.py when IPv6 is disabled. X-Git-Tag: v3.3.0b2~292^2 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=121d59ffa98d20b20e849b4c7333a723803f6798;p=python #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. --- diff --git a/Lib/test/support.py b/Lib/test/support.py index ddd3ab619a..2d7f70df07 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 a109baf039..dada87b7cf 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 -----