Skip to content

Commit 9459ff7

Browse files
author
James William Pye
committed
Close socket in failure cases.
1 parent f2ff6b5 commit 9459ff7

1 file changed

Lines changed: 9 additions & 5 deletions

File tree

postgresql/python/socket.py

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -62,9 +62,13 @@ def secure(self, socket : socket.socket) -> ssl.SSLSocket:
6262

6363
def __call__(self, timeout = None):
6464
s = socket.socket(*self.socket_create)
65-
s.settimeout(float(timeout) if timeout is not None else None)
66-
s.connect(self.socket_connect)
67-
s.settimeout(None)
65+
try:
66+
s.settimeout(float(timeout) if timeout is not None else None)
67+
s.connect(self.socket_connect)
68+
s.settimeout(None)
69+
except Exception:
70+
s.close()
71+
raise
6872
return s
6973

7074
def __init__(self,
@@ -102,12 +106,12 @@ def find_available_port(
102106
s = socket.socket(address_family, socket.SOCK_STREAM,)
103107
try:
104108
s.bind(('localhost', port))
109+
s.close()
105110
except socket.error as e:
111+
s.close()
106112
if e.errno in (errno.EACCES, errno.EADDRINUSE, errno.EINTR):
107113
# try again
108114
continue
109-
finally:
110-
s.close()
111115
break
112116
else:
113117
port = None

0 commit comments

Comments
 (0)