Check for fd of -1 to save fsync() and fstat() call
diff --git a/Modules/mmapmodule.c b/Modules/mmapmodule.c
index 2d745c1..9a39b24 100644
--- a/Modules/mmapmodule.c
+++ b/Modules/mmapmodule.c
@@ -1059,9 +1059,11 @@
#ifdef HAVE_FSTAT
# ifdef __VMS
/* on OpenVMS we must ensure that all bytes are written to the file */
- fsync(fd);
+ if (fd != -1) {
+ fsync(fd);
+ }
# endif
- if (fstat(fd, &st) == 0 && S_ISREG(st.st_mode)) {
+ if (fd != -1 && fstat(fd, &st) == 0 && S_ISREG(st.st_mode)) {
if (map_size == 0) {
map_size = st.st_size;
} else if ((size_t)offset + (size_t)map_size > st.st_size) {