Skip to content

Commit ada7d92

Browse files
committed
fix refleak in file handle creation error case
1 parent 4458449 commit ada7d92

File tree

1 file changed

+5
-7
lines changed

1 file changed

+5
-7
lines changed

Modules/posixmodule.c

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -6906,13 +6906,6 @@ posix_fdopen(PyObject *self, PyObject *args)
69066906
}
69076907
}
69086908
#endif
6909-
/* The dummy filename used here must be kept in sync with the value
6910-
tested against in gzip.GzipFile.__init__() - see issue #13781. */
6911-
f = PyFile_FromFile(NULL, "<fdopen>", orgmode, fclose);
6912-
if (f == NULL) {
6913-
PyMem_FREE(mode);
6914-
return NULL;
6915-
}
69166909
Py_BEGIN_ALLOW_THREADS
69176910
#if !defined(MS_WINDOWS) && defined(HAVE_FCNTL_H)
69186911
if (mode[0] == 'a') {
@@ -6935,6 +6928,11 @@ posix_fdopen(PyObject *self, PyObject *args)
69356928
PyMem_FREE(mode);
69366929
if (fp == NULL)
69376930
return posix_error();
6931+
/* The dummy filename used here must be kept in sync with the value
6932+
tested against in gzip.GzipFile.__init__() - see issue #13781. */
6933+
f = PyFile_FromFile(NULL, "<fdopen>", orgmode, fclose);
6934+
if (f == NULL)
6935+
return NULL;
69386936
/* We now know we will succeed, so initialize the file object. */
69396937
((PyFileObject *)f)->f_fp = fp;
69406938
PyFile_SetBufSize(f, bufsize);

0 commit comments

Comments
 (0)