diff options
author | Ladislav Zezula <ladislav.zezula@avast.com> | 2022-02-13 07:40:22 +0100 |
---|---|---|
committer | Ladislav Zezula <ladislav.zezula@avast.com> | 2022-02-13 07:40:22 +0100 |
commit | 503ab19d3d4253fb013752572c19c314d19de792 (patch) | |
tree | b1f026437af9411ffd216e5406bfec4cd899e75a /src/SBaseCommon.cpp | |
parent | 6a107601c628ec15b5d7947d6f51d00d709b0e7a (diff) |
SFileAddListFile optimized for protectors that set too large hash table
Diffstat (limited to 'src/SBaseCommon.cpp')
-rw-r--r-- | src/SBaseCommon.cpp | 12 |
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))
{
|