diff options
-rwxr-xr-x | Lib/mailbox.py | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/Lib/mailbox.py b/Lib/mailbox.py index dd8e5e1..0ea4a58 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) |