summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAntoine Pitrou <solipsis@pitrou.net>2012-04-05 14:07:52 +0200
committerAntoine Pitrou <solipsis@pitrou.net>2012-04-05 14:07:52 +0200
commit02a380105d4cd31219d2dc468f277688973ec2bd (patch)
tree17252972b130ce680cd502104cf7b5938b35c610
parentb45c5e2d0ee566eba9400ac6b2b3e44ddbffdc58 (diff)
downloadcpython-git-02a380105d4cd31219d2dc468f277688973ec2bd.tar.gz
Issue #14505: Fix file descriptor leak when deallocating file objects created with PyFile_FromString().
-rw-r--r--Misc/NEWS3
-rw-r--r--Objects/fileobject.c3
2 files changed, 5 insertions, 1 deletions
diff --git a/Misc/NEWS b/Misc/NEWS
index 8593a10b1c..330477e655 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -9,6 +9,9 @@ What's New in Python 2.7.4
Core and Builtins
-----------------
+- Issue #14505: Fix file descriptor leak when deallocating file objects
+ created with PyFile_FromString().
+
- Issue #14474: Save and restore exception state in thread.start_new_thread()
while writing error message if the thread leaves a unhandled exception.
diff --git a/Objects/fileobject.c b/Objects/fileobject.c
index 050e239c4f..1d8142e17c 100644
--- a/Objects/fileobject.c
+++ b/Objects/fileobject.c
@@ -493,9 +493,10 @@ PyFile_FromFile(FILE *fp, char *name, char *mode, int (*close)(FILE *))
PyObject *
PyFile_FromString(char *name, char *mode)
{
+ extern int fclose(FILE *);
PyFileObject *f;
- f = (PyFileObject *)PyFile_FromFile((FILE *)NULL, name, mode, NULL);
+ f = (PyFileObject *)PyFile_FromFile((FILE *)NULL, name, mode, fclose);
if (f != NULL) {
if (open_the_file(f, name, mode) == NULL) {
Py_DECREF(f);