Browse Source

Fix detecting file as directory on zOS issue #8051

Mahdi Hosseini 4 years ago
parent
commit
51bdb51050
1 changed files with 7 additions and 0 deletions
  1. 7 0
      src/google/protobuf/compiler/importer.cc

+ 7 - 0
src/google/protobuf/compiler/importer.cc

@@ -495,10 +495,17 @@ io::ZeroCopyInputStream* DiskSourceTree::OpenDiskFile(
   do {
     ret = stat(filename.c_str(), &sb);
   } while (ret != 0 && errno == EINTR);
+#if defined(_WIN32)
+  if (ret == 0 && sb.st_mode & S_IFDIR) {
+      last_error_message_ = "Input file is a directory.";
+      return NULL;
+  }
+#elif
   if (ret == 0 && S_ISDIR(sb.st_mode)) {
     last_error_message_ = "Input file is a directory.";
     return NULL;
   }
+#endif
   int file_descriptor;
   do {
     file_descriptor = open(filename.c_str(), O_RDONLY);