aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/cpp
diff options
context:
space:
mode:
authorGravatar Laszlo Csomor <laszlocsomor@google.com>2017-03-06 12:38:21 +0000
committerGravatar Vladimir Moskva <vladmos@google.com>2017-03-06 14:44:37 +0000
commite6d40b3571f8b1d3639ca37165c1009826b7b4ff (patch)
tree40397b18c2abeeb108c69638a0495da406339b87 /src/main/cpp
parenta812e0a5d188982397ee0a4ca69de7fa21a5088a (diff)
Bazel client, Windows: fix ReadFile("/dev/null")
Mimic read(2) behavior when reading from /dev/null and always successfully read 0 bytes. See https://github.com/bazelbuild/bazel/issues/2107 -- PiperOrigin-RevId: 149286494 MOS_MIGRATED_REVID=149286494
Diffstat (limited to 'src/main/cpp')
-rw-r--r--src/main/cpp/util/file_windows.cc9
1 files changed, 9 insertions, 0 deletions
diff --git a/src/main/cpp/util/file_windows.cc b/src/main/cpp/util/file_windows.cc
index 35d824223e..145d5dae0c 100644
--- a/src/main/cpp/util/file_windows.cc
+++ b/src/main/cpp/util/file_windows.cc
@@ -599,6 +599,11 @@ int ReadFromHandle(file_handle_type handle, void* data, size_t size,
}
bool ReadFile(const string& filename, string* content, int max_size) {
+ if (IsDevNull(filename)) {
+ // mimic read(2) behavior: we can always read 0 bytes from /dev/null
+ content->clear();
+ return true;
+ }
HANDLE handle;
if (!OpenFileForReading(filename, &handle)) {
return false;
@@ -613,6 +618,10 @@ bool ReadFile(const string& filename, string* content, int max_size) {
}
bool ReadFile(const string& filename, void* data, size_t size) {
+ if (IsDevNull(filename)) {
+ // mimic read(2) behavior: we can always read 0 bytes from /dev/null
+ return true;
+ }
HANDLE handle;
if (!OpenFileForReading(filename, &handle)) {
return false;