diff --git a/compiler-rt/lib/sanitizer_common/sanitizer_posix_libcdep.cpp b/compiler-rt/lib/sanitizer_common/sanitizer_posix_libcdep.cpp --- a/compiler-rt/lib/sanitizer_common/sanitizer_posix_libcdep.cpp +++ b/compiler-rt/lib/sanitizer_common/sanitizer_posix_libcdep.cpp @@ -273,8 +273,9 @@ // Checking too large memory ranges is slow. CHECK_LT(size, page_size * 10); int sock_pair[2]; + errno = 0; if (pipe(sock_pair)) - return false; + return errno == EMFILE || errno == ENFILE; uptr bytes_written = internal_write(sock_pair[1], reinterpret_cast(beg), size); int write_errno;