StormLib will not make Warcraft III maps larger than 2GB

This commit is contained in:
Ladislav Zezula
2023-09-23 01:08:58 +02:00
parent 8debce7eab
commit cb56fff1a5
11 changed files with 124 additions and 282 deletions

View File

@@ -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))
{