From a50eaacb1309f4c1e11bf63a20cef3499a47b6ca Mon Sep 17 00:00:00 2001 From: Ladislav Zezula Date: Thu, 24 Apr 2025 11:43:27 +0200 Subject: Fixed bug in verifying signatures on MPQs version 2 --- src/SBaseFileTable.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'src/SBaseFileTable.cpp') diff --git a/src/SBaseFileTable.cpp b/src/SBaseFileTable.cpp index d2d5bc3..e4ce6f6 100644 --- a/src/SBaseFileTable.cpp +++ b/src/SBaseFileTable.cpp @@ -586,6 +586,9 @@ DWORD ConvertMpqHeaderToFormat4( pHeader->BlockTableSize64 = (pHeader->dwBlockTableSize * sizeof(TMPQBlock)); BlockTablePos64 = MAKE_OFFSET64(pHeader->wBlockTablePosHi, pHeader->dwBlockTablePos); + // Supply the 64-bit archive size for signature verification + pHeader->ArchiveSize64 = pHeader->dwArchiveSize; + // We require the block table to follow hash table if(BlockTablePos64 >= HashTablePos64) { @@ -600,7 +603,6 @@ DWORD ConvertMpqHeaderToFormat4( } else { - pHeader->ArchiveSize64 = pHeader->dwArchiveSize; ha->dwFlags |= MPQ_FLAG_MALFORMED; } -- cgit v1.2.3