diff options
author | Ladislav Zezula <ladislav.zezula@avast.com> | 2022-02-06 18:05:34 +0100 |
---|---|---|
committer | Ladislav Zezula <ladislav.zezula@avast.com> | 2022-02-06 18:05:34 +0100 |
commit | 9eef856125e84a00169f64a854241ff43f500592 (patch) | |
tree | 0e7ff5e34562a85ca2cd5e674ca892ccdb1034e2 /src/SFileGetFileInfo.cpp | |
parent | ca0e437ff5577870d6d757eba5b9430a781df4a2 (diff) |
Fixed file search order for Starcraft I
Diffstat (limited to 'src/SFileGetFileInfo.cpp')
-rw-r--r-- | src/SFileGetFileInfo.cpp | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/src/SFileGetFileInfo.cpp b/src/SFileGetFileInfo.cpp index 5bc3a3f..b980755 100644 --- a/src/SFileGetFileInfo.cpp +++ b/src/SFileGetFileInfo.cpp @@ -199,6 +199,7 @@ bool WINAPI SFileGetFileInfo( TFileEntry * pFileEntry = NULL;
TMPQHeader * pHeader = NULL;
ULONGLONG Int64Value = 0;
+ ULONGLONG ByteOffset;
TMPQFile * hf = NULL;
void * pvSrcFileInfo = NULL;
DWORD cbSrcFileInfo = 0;
@@ -317,7 +318,8 @@ bool WINAPI SFileGetFileInfo( return GetInfo(pvFileInfo, cbFileInfo, &pHeader->dwBlockTableSize, sizeof(DWORD), pcbLengthNeeded);
case SFileMpqBlockTable:
- if(MAKE_OFFSET64(pHeader->wBlockTablePosHi, pHeader->dwBlockTablePos) >= ha->FileSize)
+ ByteOffset = FileOffsetFromMpqOffset(ha, MAKE_OFFSET64(pHeader->wBlockTablePosHi, pHeader->dwBlockTablePos));
+ if(ByteOffset >= ha->FileSize)
return GetInfo_ReturdwErrCode(ERROR_FILE_NOT_FOUND);
cbSrcFileInfo = pHeader->dwBlockTableSize * sizeof(TMPQBlock);
pvSrcFileInfo = LoadBlockTable(ha, true);
|