diff options
author | Ladislav Zezula <zezula@volny.cz> | 2025-04-22 22:40:25 +0200 |
---|---|---|
committer | Ladislav Zezula <zezula@volny.cz> | 2025-04-22 22:40:25 +0200 |
commit | c9620d7824e58bdc79a0fde09003ec047b1af3f6 (patch) | |
tree | f2ed61dbaf5f0ce648e7c1b940c78731294b1494 /src/SBaseFileTable.cpp | |
parent | 4f4e2154cd9bb788186e4985104b58c4a5ee3d72 (diff) |
Fixed more bugs from POCs
Diffstat (limited to 'src/SBaseFileTable.cpp')
-rw-r--r-- | src/SBaseFileTable.cpp | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/src/SBaseFileTable.cpp b/src/SBaseFileTable.cpp index 0461be2..d2d5bc3 100644 --- a/src/SBaseFileTable.cpp +++ b/src/SBaseFileTable.cpp @@ -651,7 +651,7 @@ DWORD ConvertMpqHeaderToFormat4( // Size of the block table
if(BlockTablePos64)
{
- if(BlockTablePos64 > FileSize)
+ if(BlockTablePos64 > FileSize || BlockTablePos64 >= MaxOffset)
return ERROR_FILE_CORRUPT;
pHeader->BlockTableSize64 = MaxOffset - BlockTablePos64;
MaxOffset = BlockTablePos64;
@@ -660,7 +660,7 @@ DWORD ConvertMpqHeaderToFormat4( // Size of the hash table
if(HashTablePos64)
{
- if(HashTablePos64 > FileSize)
+ if(HashTablePos64 > FileSize || HashTablePos64 >= MaxOffset)
return ERROR_FILE_CORRUPT;
pHeader->HashTableSize64 = MaxOffset - HashTablePos64;
MaxOffset = HashTablePos64;
|