From cb56fff1a5aa1fd3b69c92c38dd07aec4ae28dec Mon Sep 17 00:00:00 2001 From: Ladislav Zezula Date: Sat, 23 Sep 2023 01:08:58 +0200 Subject: StormLib will not make Warcraft III maps larger than 2GB --- src/SFileAddFile.cpp | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'src/SFileAddFile.cpp') diff --git a/src/SFileAddFile.cpp b/src/SFileAddFile.cpp index 5913424..2d14dda 100644 --- a/src/SFileAddFile.cpp +++ b/src/SFileAddFile.cpp @@ -246,6 +246,14 @@ static DWORD WriteDataToMpqFile( BSWAP_ARRAY32_UNSIGNED(pbToWrite, dwBytesInSector); } + // Do not allow Warcraft III maps to go over 2GB. + // https://github.com/ladislav-zezula/StormLib/issues/306 + if((ha->dwFlags & MPQ_FLAG_WAR3_MAP) && (ByteOffset + dwBytesInSector) > 0x7FFFFFFF) + { + dwErrCode = ERROR_DISK_FULL; + break; + } + // Write the file sector if(!FileStream_Write(ha->pStream, &ByteOffset, pbToWrite, dwBytesInSector)) { -- cgit v1.2.3