aboutsummaryrefslogtreecommitdiff
path: root/src/SBaseCommon.cpp
diff options
context:
space:
mode:
authorLadislav Zezula <ladislav.zezula@avast.com>2022-02-13 07:40:22 +0100
committerLadislav Zezula <ladislav.zezula@avast.com>2022-02-13 07:40:22 +0100
commit503ab19d3d4253fb013752572c19c314d19de792 (patch)
treeb1f026437af9411ffd216e5406bfec4cd899e75a /src/SBaseCommon.cpp
parent6a107601c628ec15b5d7947d6f51d00d709b0e7a (diff)
SFileAddListFile optimized for protectors that set too large hash table
Diffstat (limited to 'src/SBaseCommon.cpp')
-rw-r--r--src/SBaseCommon.cpp12
1 files changed, 7 insertions, 5 deletions
diff --git a/src/SBaseCommon.cpp b/src/SBaseCommon.cpp
index 5b81bad..1209719 100644
--- a/src/SBaseCommon.cpp
+++ b/src/SBaseCommon.cpp
@@ -992,7 +992,7 @@ void * LoadMpqTable(
DWORD dwCompressedSize,
DWORD dwTableSize,
DWORD dwKey,
- bool * pbTableIsCut)
+ DWORD * PtrRealTableSize)
{
ULONGLONG FileSize = 0;
LPBYTE pbCompressed = NULL;
@@ -1037,13 +1037,15 @@ void * LoadMpqTable(
// Fill the extra data with zeros
dwBytesToRead = (DWORD)(FileSize - ByteOffset);
memset(pbMpqTable + dwBytesToRead, 0, (dwTableSize - dwBytesToRead));
-
- // Give the caller information that the table was cut
- if(pbTableIsCut != NULL)
- pbTableIsCut[0] = true;
}
}
+ // Give the caller information that the table was cut
+ if(PtrRealTableSize != NULL)
+ {
+ PtrRealTableSize[0] = dwBytesToRead;
+ }
+
// If everything succeeded, read the raw table from the MPQ
if(FileStream_Read(ha->pStream, &ByteOffset, pbToRead, dwBytesToRead))
{