Merge remote
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 _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 7b519d2..aeca714 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -82,6 +82,12 @@
     * 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
 -----