aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--dep/CascLib/src/common/FileStream.cpp13
-rw-r--r--dep/CascLib/src/common/ListFile.cpp7
-rw-r--r--dep/CascLib/src/common/Map.cpp4
-rw-r--r--dep/PackageList.txt2
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