summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLadislav Zezula <ladislav.zezula@avg.com>2014-03-05 09:37:52 +0100
committerLadislav Zezula <ladislav.zezula@avg.com>2014-03-05 09:37:52 +0100
commit45d0dfbb815c5cf1177a0e4f4e6ee5677cdff237 (patch)
treeb0c4f072cf4047b119e01c3b939325cb44eb1907
parenta060c806ea5d92ff8b50f918e6abc50ec19bd0d3 (diff)
+ Fixed ASSERT when opening a protected map with MPQ_OPEN_FORCE_MPQ_V1
-rw-r--r--src/SBaseFileTable.cpp5
-rw-r--r--test/Test.cpp4
2 files changed, 5 insertions, 4 deletions
diff --git a/src/SBaseFileTable.cpp b/src/SBaseFileTable.cpp
index 0a63cf9..40f761a 100644
--- a/src/SBaseFileTable.cpp
+++ b/src/SBaseFileTable.cpp
@@ -395,8 +395,9 @@ int ConvertMpqHeaderToFormat4(
// Check for malformed MPQ header version 1.0
BSWAP_TMPQHEADER(pHeader, MPQ_FORMAT_VERSION_1);
- if(pHeader->dwHeaderSize != MPQ_HEADER_SIZE_V1)
+ if(pHeader->wFormatVersion != MPQ_FORMAT_VERSION_1 || pHeader->dwHeaderSize != MPQ_HEADER_SIZE_V1)
{
+ pHeader->wFormatVersion = MPQ_FORMAT_VERSION_1;
pHeader->dwHeaderSize = MPQ_HEADER_SIZE_V1;
ha->dwFlags |= MPQ_FLAG_MALFORMED;
}
@@ -439,7 +440,7 @@ int ConvertMpqHeaderToFormat4(
// Check for malformed MPQ header version 1.0
BSWAP_TMPQHEADER(pHeader, MPQ_FORMAT_VERSION_2);
- if(pHeader->dwHeaderSize != MPQ_HEADER_SIZE_V2)
+ if(pHeader->wFormatVersion != MPQ_FORMAT_VERSION_2 || pHeader->dwHeaderSize != MPQ_HEADER_SIZE_V2)
{
pHeader->wFormatVersion = MPQ_FORMAT_VERSION_1;
pHeader->dwHeaderSize = MPQ_HEADER_SIZE_V1;
diff --git a/test/Test.cpp b/test/Test.cpp
index e39ec75..80230d2 100644
--- a/test/Test.cpp
+++ b/test/Test.cpp
@@ -3457,7 +3457,7 @@ int main(int argc, char * argv[])
// Not a test, but rather a tool for creating links to duplicated files
// if(nError == ERROR_SUCCESS)
// nError = FindFilePairs(ForEachFile_CreateArchiveLink, "2004 - WoW\\06080", "2004 - WoW\\06299");
-
+/*
// Search all testing archives and verify their SHA1 hash
if(nError == ERROR_SUCCESS)
nError = FindFiles(ForEachFile_VerifyFileChecksum, szMpqSubDir);
@@ -3565,7 +3565,7 @@ int main(int argc, char * argv[])
// Open an Warcraft III map locked by the Spazzler protector
if(nError == ERROR_SUCCESS)
nError = TestOpenArchive("MPQ_2002_v1_ProtectedMap_Spazzler.w3x");
-
+*/
if(nError == ERROR_SUCCESS)
nError = TestOpenArchive("MPQ_2014_v1_ProtectedMap_Spazzler2.w3x");