diff --git a/Python/pythonrun.c b/Python/pythonrun.c --- a/Python/pythonrun.c +++ b/Python/pythonrun.c @@ -1106,8 +1106,15 @@ is_valid_fd(int fd) { int dummy_fd; +#if defined(HAVE_FSTAT) + struct stat buf; +#endif if (fd < 0 || !_PyVerify_fd(fd)) return 0; +#if defined(HAVE_FSTAT) + if (fstat(fd, &buf) < 0 && errno == EBADF) + return 0; +#endif dummy_fd = dup(fd); if (dummy_fd < 0) return 0;