X-Git-Url: https://sfsrealm.hopto.org/projects/gitweb.cgi?p=SFmpqapi.git;a=blobdiff_plain;f=SFmpqapi.cpp;h=55f9fb835c7de8bfb1928be65b53cc98d6ec261b;hp=a42fa432cbd5c022756ade6f84f328b82303a28a;hb=7a5243c768cd08bfc2f901e03c3a9ed1b1f95e39;hpb=4030d9787859ac8d8e67c586885a40a0fc777521 diff --git a/SFmpqapi.cpp b/SFmpqapi.cpp index a42fa43..55f9fb8 100644 --- a/SFmpqapi.cpp +++ b/SFmpqapi.cpp @@ -1520,7 +1520,7 @@ BOOL SFMPQAPI WINAPI SFileListFiles(MPQHANDLE hMPQ, LPCSTR lpFileLists, FILELIST for (i=0;iMpqHeader.dwHashTableSize;i++) { lpListBuffer[i].dwFileExists = 0; lpListBuffer[i].szFileName[0] = 0; - if ((mpqOpenArc->lpHashTable[i].dwBlockTableIndex&0xFFFFFFFE)!=0xFFFFFFFE) { + if ((mpqOpenArc->lpHashTable[i].dwBlockTableIndex&0xFFFFFFFE)!=0xFFFFFFFE && mpqOpenArc->lpHashTable[i].dwBlockTableIndex < mpqOpenArc->MpqHeader.dwBlockTableSize) { lpListBuffer[i].lcLocale = mpqOpenArc->lpHashTable[i].lcLocale; DWORD dwBlockIndex = mpqOpenArc->lpHashTable[i].dwBlockTableIndex; lpListBuffer[i].dwCompressedSize = mpqOpenArc->lpBlockTable[dwBlockIndex].dwCompressedSize; @@ -1684,7 +1684,7 @@ BOOL SFMPQAPI WINAPI SFileListFiles(MPQHANDLE hMPQ, LPCSTR lpFileLists, FILELIST for (i=0;iMpqHeader.dwHashTableSize;i++) { lpListBuffer[i].dwFileExists = 0; lpListBuffer[i].szFileName[0] = 0; - if ((mpqOpenArc->lpHashTable[i].dwBlockTableIndex&0xFFFFFFFE)!=0xFFFFFFFE) { + if ((mpqOpenArc->lpHashTable[i].dwBlockTableIndex&0xFFFFFFFE)!=0xFFFFFFFE && mpqOpenArc->lpHashTable[i].dwBlockTableIndex < mpqOpenArc->MpqHeader.dwBlockTableSize) { lpListBuffer[i].lcLocale = mpqOpenArc->lpHashTable[i].lcLocale; DWORD dwBlockIndex = mpqOpenArc->lpHashTable[i].dwBlockTableIndex; lpListBuffer[i].dwCompressedSize = mpqOpenArc->lpBlockTable[dwBlockIndex].dwCompressedSize;