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 dd8e5e1..0ea4a58 100755
--- a/Lib/mailbox.py
+++ b/Lib/mailbox.py
@@ -46,8 +46,11 @@
 	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)