@@ -1066,23 +1066,33 @@ file_t getStdoutHandle() { return 1; }
1066
1066
file_t getStderrHandle () { return 2 ; }
1067
1067
1068
1068
Expected<size_t > readNativeFile (file_t FD, MutableArrayRef<char > Buf) {
1069
+ #if defined(__APPLE__)
1070
+ size_t Size = std::min<size_t >(Buf.size (), INT32_MAX);
1071
+ #else
1072
+ size_t Size = Buf.size ();
1073
+ #endif
1069
1074
ssize_t NumRead =
1070
- sys::RetryAfterSignal (-1 , ::read, FD, Buf.data (), Buf. size () );
1075
+ sys::RetryAfterSignal (-1 , ::read, FD, Buf.data (), Size );
1071
1076
if (ssize_t (NumRead) == -1 )
1072
1077
return errorCodeToError (std::error_code (errno, std::generic_category ()));
1073
1078
return NumRead;
1074
1079
}
1075
1080
1076
1081
Expected<size_t > readNativeFileSlice (file_t FD, MutableArrayRef<char > Buf,
1077
1082
uint64_t Offset) {
1083
+ #if defined(__APPLE__)
1084
+ size_t Size = std::min<size_t >(Buf.size (), INT32_MAX);
1085
+ #else
1086
+ size_t Size = Buf.size ();
1087
+ #endif
1078
1088
#ifdef HAVE_PREAD
1079
1089
ssize_t NumRead =
1080
- sys::RetryAfterSignal (-1 , ::pread, FD, Buf.data (), Buf. size () , Offset);
1090
+ sys::RetryAfterSignal (-1 , ::pread, FD, Buf.data (), Size , Offset);
1081
1091
#else
1082
1092
if (lseek (FD, Offset, SEEK_SET) == -1 )
1083
1093
return errorCodeToError (std::error_code (errno, std::generic_category ()));
1084
1094
ssize_t NumRead =
1085
- sys::RetryAfterSignal (-1 , ::read, FD, Buf.data (), Buf. size () );
1095
+ sys::RetryAfterSignal (-1 , ::read, FD, Buf.data (), Size );
1086
1096
#endif
1087
1097
if (NumRead == -1 )
1088
1098
return errorCodeToError (std::error_code (errno, std::generic_category ()));
0 commit comments