summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Modules/_io/fileio.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/Modules/_io/fileio.c b/Modules/_io/fileio.c
index d5bf328..5d9d87d 100644
--- a/Modules/_io/fileio.c
+++ b/Modules/_io/fileio.c
@@ -1094,6 +1094,12 @@ _io_FileIO_truncate_impl(fileio *self, PyTypeObject *cls, PyObject *posobj)
return NULL;
}
+ /* Sometimes a large file is truncated. While estimated_size is used as a
+ estimate, that it is much larger than the actual size can result in a
+ significant over allocation and sometimes a MemoryError / running out of
+ memory. */
+ self->estimated_size = pos;
+
return posobj;
}
#endif /* HAVE_FTRUNCATE */