Issue #15261: Stop os.stat(fd) crashing on Windows when fd not open.
diff --git a/Modules/posixmodule.c b/Modules/posixmodule.c
index 1bd5e97..b99a5fe 100644
--- a/Modules/posixmodule.c
+++ b/Modules/posixmodule.c
@@ -1829,7 +1829,10 @@
HANDLE h;
int type;
- h = (HANDLE)_get_osfhandle(file_number);
+ if (!_PyVerify_fd(file_number))
+ h = INVALID_HANDLE_VALUE;
+ else
+ h = (HANDLE)_get_osfhandle(file_number);
/* Protocol violation: we explicitly clear errno, instead of
setting it to a POSIX error. Callers should use GetLastError. */
@@ -8244,8 +8247,6 @@
/* on OpenVMS we must ensure that all bytes are written to the file */
fsync(fd);
#endif
- if (!_PyVerify_fd(fd))
- return posix_error();
Py_BEGIN_ALLOW_THREADS
res = FSTAT(fd, &st);
Py_END_ALLOW_THREADS