summaryrefslogtreecommitdiffstats
path: root/Lib/mailbox.py
diff options
context:
space:
mode:
authorR David Murray <rdmurray@bitdance.com>2011-06-17 16:56:41 (GMT)
committerR David Murray <rdmurray@bitdance.com>2011-06-17 16:56:41 (GMT)
commit4c7d21e2b3207d2123949c10d139520c9d19adb1 (patch)
tree6b2ee4d46a74617fea03084e063e52ccea5a1e18 /Lib/mailbox.py
parent92cafb85dd3143baa7016475b3895f5491fe451f (diff)
parent05ff9904010a488cc640637ac8255cae41b270dd (diff)
downloadcpython-4c7d21e2b3207d2123949c10d139520c9d19adb1.zip
cpython-4c7d21e2b3207d2123949c10d139520c9d19adb1.tar.gz
cpython-4c7d21e2b3207d2123949c10d139520c9d19adb1.tar.bz2
merge #11767: use context manager to close file in __getitem__ to prevent FD leak
Diffstat (limited to 'Lib/mailbox.py')
-rw-r--r--Lib/mailbox.py4
1 files changed, 3 insertions, 1 deletions
diff --git a/Lib/mailbox.py b/Lib/mailbox.py
index 0e4f99b..b96b270 100644
--- a/Lib/mailbox.py
+++ b/Lib/mailbox.py
@@ -20,6 +20,7 @@ import email
import email.message
import email.generator
import io
+import contextlib
try:
if sys.platform == 'os2emx':
# OS/2 EMX fcntl() not adequate
@@ -76,7 +77,8 @@ class Mailbox:
if not self._factory:
return self.get_message(key)
else:
- return self._factory(self.get_file(key))
+ with contextlib.closing(self.get_file(key)) as file:
+ return self._factory(file)
def get_message(self, key):
"""Return a Message representation or raise a KeyError."""