mirror of
https://github.com/python/cpython.git
synced 2025-08-31 05:58:33 +00:00
Issue #10253: FileIO leaks a file descriptor when trying to open a file
for append that isn't seekable. Patch by Brian Brazil.
This commit is contained in:
parent
daf83acf00
commit
8d2b51b46a
3 changed files with 10 additions and 1 deletions
|
@ -339,6 +339,7 @@ class OtherFileTests(unittest.TestCase):
|
|||
f.truncate(15)
|
||||
self.assertEqual(f.tell(), 5)
|
||||
self.assertEqual(f.seek(0, os.SEEK_END), 15)
|
||||
f.close()
|
||||
|
||||
def testTruncateOnWindows(self):
|
||||
def bug801631():
|
||||
|
|
|
@ -57,6 +57,9 @@ Core and Builtins
|
|||
Library
|
||||
-------
|
||||
|
||||
- Issue #10253: FileIO leaks a file descriptor when trying to open a file
|
||||
for append that isn't seekable. Patch by Brian Brazil.
|
||||
|
||||
- Support context manager protocol for file-like objects returned by
|
||||
mailbox ``get_file()`` methods.
|
||||
|
||||
|
|
|
@ -396,8 +396,13 @@ fileio_init(PyObject *oself, PyObject *args, PyObject *kwds)
|
|||
end of file (otherwise, it might be done only on the
|
||||
first write()). */
|
||||
PyObject *pos = portable_lseek(self->fd, NULL, 2);
|
||||
if (pos == NULL)
|
||||
if (pos == NULL) {
|
||||
if (closefd) {
|
||||
close(self->fd);
|
||||
self->fd = -1;
|
||||
}
|
||||
goto error;
|
||||
}
|
||||
Py_DECREF(pos);
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue