Make this code more robust by not thinking we are making progress

if zero bytes were read.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85922 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Duncan Sands 2009-11-03 19:10:22 +00:00
parent e8bc45a645
commit 954cb43c80

View File

@ -226,7 +226,7 @@ MemoryBuffer *MemoryBuffer::getFile(const char *Filename, std::string *ErrStr,
size_t BytesLeft = FileSize; size_t BytesLeft = FileSize;
while (BytesLeft) { while (BytesLeft) {
ssize_t NumRead = ::read(FD, BufPtr, BytesLeft); ssize_t NumRead = ::read(FD, BufPtr, BytesLeft);
if (NumRead != -1) { if (NumRead > 0) {
BytesLeft -= NumRead; BytesLeft -= NumRead;
BufPtr += NumRead; BufPtr += NumRead;
} else if (errno == EINTR) { } else if (errno == EINTR) {