Fix for issue # 2895533.
diff --git a/expat/xmlwf/readfilemap.c b/expat/xmlwf/readfilemap.c
index 088dda5..bd32b93 100755
--- a/expat/xmlwf/readfilemap.c
+++ b/expat/xmlwf/readfilemap.c
@@ -58,10 +58,12 @@
   }
   if (fstat(fd, &sb) < 0) {
     perror(name);
+    close(fd);
     return 0;
   }
   if (!S_ISREG(sb.st_mode)) {
     fprintf(stderr, "%s: not a regular file\n", name);
+    close(fd);
     return 0;
   }
   nbytes = sb.st_size;