Skip to content

Commit 917df7d

Browse files
committed
Avoid unbounded growth SpooledTempfile.writelines
1 parent b83be9c commit 917df7d

File tree

1 file changed

+11
-4
lines changed

1 file changed

+11
-4
lines changed

Lib/tempfile.py

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -848,10 +848,17 @@ def write(self, s):
848848
return rv
849849

850850
def writelines(self, iterable):
851-
file = self._file
852-
rv = file.writelines(iterable)
853-
self._check(file)
854-
return rv
851+
if self._max_size == 0 or self._rolled:
852+
return self._file.writelines(iterable)
853+
854+
it = iter(iterable)
855+
856+
for line in it:
857+
self.write(line)
858+
if self._rolled:
859+
break
860+
861+
return self._file.writelines(it)
855862

856863
def detach(self):
857864
return self._file.detach()

0 commit comments

Comments
 (0)