diff --git a/Lib/imaplib.py b/Lib/imaplib.py index 00a17fbf36d..e2a05818fa6 100644 --- a/Lib/imaplib.py +++ b/Lib/imaplib.py @@ -23,6 +23,7 @@ Public functions: Internaldate2tuple __version__ = "2.58" import binascii, errno, random, re, socket, subprocess, sys, time, calendar +from io import DEFAULT_BUFFER_SIZE try: import ssl @@ -1237,6 +1238,7 @@ class IMAP4_stream(IMAP4): self.sock = None self.file = None self.process = subprocess.Popen(self.command, + bufsize=DEFAULT_BUFFER_SIZE, stdin=subprocess.PIPE, stdout=subprocess.PIPE, shell=True, close_fds=True) self.writefile = self.process.stdin diff --git a/Misc/ACKS b/Misc/ACKS index b5c80592f5c..6ea3f78d76c 100644 --- a/Misc/ACKS +++ b/Misc/ACKS @@ -1098,6 +1098,7 @@ Richard Townsend Nathan Trapuzzano Laurence Tratt John Tromp +Diane Trout Jason Trowbridge Brent Tubbs Anthony Tuininga diff --git a/Misc/NEWS b/Misc/NEWS index 5e36c4215b1..9a62a02bebe 100644 --- a/Misc/NEWS +++ b/Misc/NEWS @@ -233,6 +233,10 @@ Core and Builtins Library ------- +- Issue #17443: impalib.IMAP4_stream was using the default unbuffered IO + in subprocess, but the imap code assumes buffered IO. In Python2 this + worked by accident. IMAP4_stream now explicitly uses buffered IO. + - Issue #17476: Fixed regression relative to Python2 in undocumented pydoc 'allmethods'; it was missing unbound methods on the class.