From 49032636debe483912a65062aee65c9c547b9939 Mon Sep 17 00:00:00 2001 From: Ladislav Date: Fri, 13 Jun 2014 23:05:24 +0200 Subject: + Limited MPQ header search to 0x08000000 bytes --- src/SFileOpenArchive.cpp | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/SFileOpenArchive.cpp b/src/SFileOpenArchive.cpp index 0ca51c0..719aefe 100644 --- a/src/SFileOpenArchive.cpp +++ b/src/SFileOpenArchive.cpp @@ -199,6 +199,7 @@ bool WINAPI SFileOpenArchive( if(nError == ERROR_SUCCESS) { ULONGLONG SearchOffset = 0; + ULONGLONG EndOfSearch = FileSize; DWORD dwStreamFlags = 0; DWORD dwHeaderSize; DWORD dwHeaderID; @@ -215,9 +216,13 @@ bool WINAPI SFileOpenArchive( // Also remember if we shall check sector CRCs when reading file if(dwFlags & MPQ_OPEN_CHECK_SECTOR_CRC) ha->dwFlags |= MPQ_FLAG_CHECK_SECTOR_CRC; + + // Limit the header searching to about 130 MB of data + if(EndOfSearch > 0x08000000) + EndOfSearch = 0x08000000; // Find the offset of MPQ header within the file - while(SearchOffset < FileSize) + while(SearchOffset < EndOfSearch) { DWORD dwBytesAvailable = MPQ_HEADER_SIZE_V4; -- cgit v1.2.3