diff options
-rw-r--r-- | dep/CascLib/src/common/FileStream.cpp | 13 | ||||
-rw-r--r-- | dep/CascLib/src/common/ListFile.cpp | 7 | ||||
-rw-r--r-- | dep/CascLib/src/common/Map.cpp | 4 | ||||
-rw-r--r-- | dep/PackageList.txt | 2 |
4 files changed, 20 insertions, 6 deletions
diff --git a/dep/CascLib/src/common/FileStream.cpp b/dep/CascLib/src/common/FileStream.cpp index cb49f7f4ac1..7e0dd3cd484 100644 --- a/dep/CascLib/src/common/FileStream.cpp +++ b/dep/CascLib/src/common/FileStream.cpp @@ -134,6 +134,7 @@ static bool BaseFile_Open(TFileStream * pStream, const TCHAR * szFileName, DWORD if(fstat64(handle, &fileinfo) == -1) { SetLastError(errno); + close(handle); return false; } @@ -192,7 +193,11 @@ static bool BaseFile_Read( // we have to update the file position if(ByteOffset != pStream->Base.File.FilePos) { - lseek64((intptr_t)pStream->Base.File.hFile, (off64_t)(ByteOffset), SEEK_SET); + if(lseek64((intptr_t)pStream->Base.File.hFile, (off64_t)(ByteOffset), SEEK_SET) == (off64_t)-1) + { + SetLastError(errno); + return false; + } pStream->Base.File.FilePos = ByteOffset; } @@ -263,7 +268,11 @@ static bool BaseFile_Write(TFileStream * pStream, ULONGLONG * pByteOffset, const // we have to update the file position if(ByteOffset != pStream->Base.File.FilePos) { - lseek64((intptr_t)pStream->Base.File.hFile, (off64_t)(ByteOffset), SEEK_SET); + if(lseek64((intptr_t)pStream->Base.File.hFile, (off64_t)(ByteOffset), SEEK_SET) == (off64_t)-1) + { + SetLastError(errno); + return false; + } pStream->Base.File.FilePos = ByteOffset; } diff --git a/dep/CascLib/src/common/ListFile.cpp b/dep/CascLib/src/common/ListFile.cpp index 19d11b874b1..dc9a88bf44c 100644 --- a/dep/CascLib/src/common/ListFile.cpp +++ b/dep/CascLib/src/common/ListFile.cpp @@ -324,8 +324,11 @@ PLISTFILE_MAP ListFile_CreateMap(const TCHAR * szListFile) break; } - // Finish the listfile map - pListMap = ListMap_Finish(pListMap); + if(pListMap == NULL) + { + // Finish the listfile map + pListMap = ListMap_Finish(pListMap); + } // Free the listfile ListFile_Free(pvListFile); diff --git a/dep/CascLib/src/common/Map.cpp b/dep/CascLib/src/common/Map.cpp index 30ae8ea0531..aa1e2a2ada1 100644 --- a/dep/CascLib/src/common/Map.cpp +++ b/dep/CascLib/src/common/Map.cpp @@ -130,9 +130,11 @@ size_t Map_EnumObjects(PCASC_MAP pMap, void **ppvArray) ppvArray[nIndex++] = pMap->HashTable[i]; } } + + return pMap->ItemCount; } - return pMap->ItemCount; + return 0; } void * Map_FindObject(PCASC_MAP pMap, void * pvKey, PDWORD PtrIndex) diff --git a/dep/PackageList.txt b/dep/PackageList.txt index 8423179f6f7..aeec76c294f 100644 --- a/dep/PackageList.txt +++ b/dep/PackageList.txt @@ -58,7 +58,7 @@ recastnavigation (Recast is state of the art navigation mesh construction toolse CascLib (An open-source implementation of library for reading CASC storage from Blizzard games since 2014) https://github.com/ladislav-zezula/CascLib - Version: 8f606d1ae0e01338f80e108b8d1b41912d4a3d2f + Version: a03e2a397d62451ed8576b883fe32ed04add7701 rapidjson (A fast JSON parser/generator for C++ with both SAX/DOM style API http://rapidjson.org/) https://github.com/miloyip/rapidjson |