diff --git a/src/AbstractDiskWriter.cc b/src/AbstractDiskWriter.cc index 9e3dac4b..a6191490 100644 --- a/src/AbstractDiskWriter.cc +++ b/src/AbstractDiskWriter.cc @@ -398,10 +398,14 @@ void AbstractDiskWriter::ensureMmapWrite(size_t len, int64_t offset) errNum = GetLastError(); } #else // !__MINGW32__ - mapaddr_ = reinterpret_cast(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(pa); } #endif // !__MINGW32__ if (mapaddr_) {