Commit ada7d929 authored by Benjamin Peterson's avatar Benjamin Peterson

fix refleak in file handle creation error case

parent 44584499
......@@ -6906,13 +6906,6 @@ posix_fdopen(PyObject *self, PyObject *args)
}
}
#endif
/* The dummy filename used here must be kept in sync with the value
tested against in gzip.GzipFile.__init__() - see issue #13781. */
f = PyFile_FromFile(NULL, "<fdopen>", orgmode, fclose);
if (f == NULL) {
PyMem_FREE(mode);
return NULL;
}
Py_BEGIN_ALLOW_THREADS
#if !defined(MS_WINDOWS) && defined(HAVE_FCNTL_H)
if (mode[0] == 'a') {
......@@ -6935,6 +6928,11 @@ posix_fdopen(PyObject *self, PyObject *args)
PyMem_FREE(mode);
if (fp == NULL)
return posix_error();
/* The dummy filename used here must be kept in sync with the value
tested against in gzip.GzipFile.__init__() - see issue #13781. */
f = PyFile_FromFile(NULL, "<fdopen>", orgmode, fclose);
if (f == NULL)
return NULL;
/* We now know we will succeed, so initialize the file object. */
((PyFileObject *)f)->f_fp = fp;
PyFile_SetBufSize(f, bufsize);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment