From: Guido van Rossum Date: Wed, 17 Jun 1998 18:34:40 +0000 (+0000) Subject: In class _Subfile, make sure read(n) can't read beyond EOF. Also X-Git-Tag: v1.5.2a1~456 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=e50b0a44cb60f41e2cd8d30c920079a95b5c1965;p=thirdparty%2FPython%2Fcpython.git In class _Subfile, make sure read(n) can't read beyond EOF. Also allow negative numbers to specify read until EOF (like for a regular file's read() method). --- diff --git a/Lib/mailbox.py b/Lib/mailbox.py index dd8e5e1dbaba..0ea4a5811d74 100755 --- a/Lib/mailbox.py +++ b/Lib/mailbox.py @@ -46,8 +46,11 @@ class _Subfile: def read(self, length = None): if self.pos >= self.stop: return '' - if length is None: - length = self.stop - self.pos + remaining = self.stop - self.pos + if length is None or length < 0: + length = remaining + elif length > remaining: + length = remaining self.fp.seek(self.pos) self.pos = self.pos + length return self.fp.read(length)