diff options
| author | Ladislav Zezula <ladislav.zezula@avg.com> | 2014-03-05 09:37:52 +0100 | 
|---|---|---|
| committer | Ladislav Zezula <ladislav.zezula@avg.com> | 2014-03-05 09:37:52 +0100 | 
| commit | 45d0dfbb815c5cf1177a0e4f4e6ee5677cdff237 (patch) | |
| tree | b0c4f072cf4047b119e01c3b939325cb44eb1907 | |
| parent | a060c806ea5d92ff8b50f918e6abc50ec19bd0d3 (diff) | |
+ Fixed ASSERT when opening a protected map with MPQ_OPEN_FORCE_MPQ_V1
| -rw-r--r-- | src/SBaseFileTable.cpp | 5 | ||||
| -rw-r--r-- | test/Test.cpp | 4 | 
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");  | 
