From: Martin v. Löwis Date: Sun, 12 Nov 2006 18:48:13 +0000 (+0000) Subject: Patch #1359217: Ignore 2xx response before 150 response. X-Git-Tag: v2.6a1~2434 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=36cbc08f3fd57b41bcde8c1ec19d79e59d95f9ca;p=thirdparty%2FPython%2Fcpython.git Patch #1359217: Ignore 2xx response before 150 response. Will backport to 2.5. --- diff --git a/Lib/ftplib.py b/Lib/ftplib.py index 937ee4e8f03f..9cb67dd55691 100644 --- a/Lib/ftplib.py +++ b/Lib/ftplib.py @@ -325,6 +325,14 @@ class FTP: if rest is not None: self.sendcmd("REST %s" % rest) resp = self.sendcmd(cmd) + # Some servers apparently send a 200 reply to + # a LIST or STOR command, before the 150 reply + # (and way before the 226 reply). This seems to + # be in violation of the protocol (which only allows + # 1xx or error messages for LIST), so we just discard + # this response. + if resp[0] == '2': + resp = self.getresp() if resp[0] != '1': raise error_reply, resp else: @@ -332,6 +340,9 @@ class FTP: if rest is not None: self.sendcmd("REST %s" % rest) resp = self.sendcmd(cmd) + # See above. + if resp[0] == '2': + resp = self.getresp() if resp[0] != '1': raise error_reply, resp conn, sockaddr = sock.accept() diff --git a/Misc/NEWS b/Misc/NEWS index bd9d2649c06a..85e231d88cf3 100644 --- a/Misc/NEWS +++ b/Misc/NEWS @@ -98,6 +98,9 @@ Core and builtins Library ------- +- Patch #1359217: Process 2xx response in an ftplib transfer + that precedes an 1xx response. + - Patch #1355023: support whence argument for GzipFile.seek. - Patch #1065257: Support passing open files as body in