Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 896cb15

Browse files
committed
Fix issue #16646: ftplib.FTP.makeport() might lose socket error details. (patch by Serhiy Storchaka)
2 parents 7c42398 + fc32788 commit 896cb15

2 files changed

Lines changed: 10 additions & 3 deletions

File tree

Lib/ftplib.py

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -288,20 +288,24 @@ def sendeprt(self, host, port):
288288

289289
def makeport(self):
290290
'''Create a new socket and send a PORT command for it.'''
291-
msg = "getaddrinfo returns an empty list"
291+
err = None
292292
sock = None
293293
for res in socket.getaddrinfo(None, 0, self.af, socket.SOCK_STREAM, 0, socket.AI_PASSIVE):
294294
af, socktype, proto, canonname, sa = res
295295
try:
296296
sock = socket.socket(af, socktype, proto)
297297
sock.bind(sa)
298-
except socket.error as msg:
298+
except socket.error as err:
299299
if sock:
300300
sock.close()
301301
sock = None
302302
continue
303303
break
304-
if not sock:
304+
if sock is None:
305+
if err is not None:
306+
raise err
307+
else:
308+
raise socket.error("getaddrinfo returns an empty list")
305309
raise socket.error(msg)
306310
sock.listen(1)
307311
port = sock.getsockname()[1] # Get proper port

Misc/NEWS

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -108,6 +108,9 @@ Core and Builtins
108108
Library
109109
-------
110110

111+
- Issue #16646: ftplib.FTP.makeport() might lose socket error details.
112+
(patch by Serhiy Storchaka)
113+
111114
- Issue #16626: Fix infinite recursion in glob.glob() on Windows when the
112115
pattern contains a wildcard in the drive or UNC path. Patch by Serhiy
113116
Storchaka.

0 commit comments

Comments
 (0)