fixed mmap failure check with MAP_FAILED flag

pull/662/head
suzker 2016-05-27 02:07:02 -07:00
parent ef0a2e601f
commit fa43431974
1 changed files with 7 additions and 3 deletions

View File

@ -398,10 +398,14 @@ void AbstractDiskWriter::ensureMmapWrite(size_t len, int64_t offset)
errNum = GetLastError();
}
#else // !__MINGW32__
mapaddr_ = reinterpret_cast<unsigned char*>(mmap(
nullptr, filesize, PROT_READ | PROT_WRITE, MAP_SHARED, fd_, 0));
if (!mapaddr_) {
void * pa = mmap(nullptr, filesize, PROT_READ | PROT_WRITE, MAP_SHARED, fd_, 0);
if (pa == MAP_FAILED) {
errNum = errno;
mapaddr_ = nullptr;
}
else {
mapaddr_ = reinterpret_cast<unsigned char*>(pa);
}
#endif // !__MINGW32__
if (mapaddr_) {