From f2c086cef8c9335571f492d9f91f40c1e5f721f5 Mon Sep 17 00:00:00 2001 From: Ladislav Zezula Date: Sat, 8 Jul 2023 14:29:02 +0200 Subject: Fixed heap overflow --- src/SBaseCommon.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'src/SBaseCommon.cpp') diff --git a/src/SBaseCommon.cpp b/src/SBaseCommon.cpp index 77590d6..b0029e0 100644 --- a/src/SBaseCommon.cpp +++ b/src/SBaseCommon.cpp @@ -999,18 +999,20 @@ void * LoadMpqTable( LPBYTE pbCompressed = NULL; LPBYTE pbMpqTable; LPBYTE pbToRead; - DWORD dwBytesToRead = dwCompressedSize; + DWORD dwBytesToRead = dwTableSize; DWORD dwErrCode = ERROR_SUCCESS; // Allocate the MPQ table pbMpqTable = pbToRead = STORM_ALLOC(BYTE, dwTableSize); if(pbMpqTable != NULL) { - // Check if the MPQ table is encrypted + // Check if the MPQ table is compressed if(dwCompressedSize < dwTableSize) { // Allocate temporary buffer for holding compressed data pbCompressed = pbToRead = STORM_ALLOC(BYTE, dwCompressedSize); + dwBytesToRead = dwCompressedSize; + if(pbCompressed == NULL) { STORM_FREE(pbMpqTable); -- cgit v1.2.3