diff options
| -rw-r--r-- | zencore/iobuffer.cpp | 2 | ||||
| -rw-r--r-- | zenserver/frontend/frontend.cpp | 8 |
2 files changed, 9 insertions, 1 deletions
diff --git a/zencore/iobuffer.cpp b/zencore/iobuffer.cpp index 56b05d86d..37ef57c2d 100644 --- a/zencore/iobuffer.cpp +++ b/zencore/iobuffer.cpp @@ -274,6 +274,8 @@ IoBufferExtendedCore::Materialize() const const uint64_t MappedOffsetDisplacement = m_FileOffset - MapOffset; const uint64_t MapSize = m_DataBytes + MappedOffsetDisplacement; + ZEN_ASSERT(MapSize > 0); + #if ZEN_PLATFORM_WINDOWS NewMmapHandle = CreateFileMapping(m_FileHandle, /* lpFileMappingAttributes */ nullptr, diff --git a/zenserver/frontend/frontend.cpp b/zenserver/frontend/frontend.cpp index 842587708..e203e0631 100644 --- a/zenserver/frontend/frontend.cpp +++ b/zenserver/frontend/frontend.cpp @@ -26,7 +26,7 @@ FindZipFsInBinary(const IoBuffer& BinBuffer) uintptr_t Cursor = uintptr_t(BinBuffer.GetData()); size_t BinSize = 0; - uint32_t Magic = *(uint32_t*)(BinBuffer.GetData()); + uint32_t Magic = *(uint32_t*)(Cursor); #if ZEN_PLATFORM_LINUX if (Magic == 0x464c457f) { @@ -134,6 +134,12 @@ FindZipFsInBinary(const IoBuffer& BinBuffer) return {}; } + size_t ZipFsSize = BinBuffer.Size() - BinSize; + if (!ZipFsSize) + { + return {}; + } + return IoBuffer(BinBuffer, BinSize); } |