diff options
author | DDuarte <dnpd.dd@gmail.com> | 2015-06-01 03:25:17 +0100 |
---|---|---|
committer | DDuarte <dnpd.dd@gmail.com> | 2015-06-01 03:25:17 +0100 |
commit | 23b8ddf4333d1277eaa78b0db5a5e2536951af93 (patch) | |
tree | 2b809bedd31dda4d7693a2b4fd2d883069843b4d /src/server/collision/Management/MMapManager.cpp | |
parent | 47a119e4fa617319b283e7c3824241bc0b6775fb (diff) |
Core/MMap: Fix two possible memory leaks in MMapManager
CID 1292777, 1292776 Resource leak
Diffstat (limited to 'src/server/collision/Management/MMapManager.cpp')
-rw-r--r-- | src/server/collision/Management/MMapManager.cpp | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/src/server/collision/Management/MMapManager.cpp b/src/server/collision/Management/MMapManager.cpp index 25a9a86bc1b..e0b1ed3b161 100644 --- a/src/server/collision/Management/MMapManager.cpp +++ b/src/server/collision/Management/MMapManager.cpp @@ -177,7 +177,8 @@ namespace MMAP { TC_LOG_ERROR("phase", "MMAP:LoadTile: Bad header in mmap %04u%02i%02i.mmtile", mapId, x, y); fclose(file); - return NULL; + delete pTile; + return nullptr; } if (pTile->fileHeader.mmapVersion != MMAP_VERSION) @@ -185,7 +186,8 @@ namespace MMAP TC_LOG_ERROR("phase", "MMAP:LoadTile: %04u%02i%02i.mmtile was built with generator v%i, expected v%i", mapId, x, y, pTile->fileHeader.mmapVersion, MMAP_VERSION); fclose(file); - return NULL; + delete pTile; + return nullptr; } pTile->data = (unsigned char*)dtAlloc(pTile->fileHeader.size, DT_ALLOC_PERM); @@ -196,7 +198,8 @@ namespace MMAP { TC_LOG_ERROR("phase", "MMAP:LoadTile: Bad header or data in mmap %04u%02i%02i.mmtile", mapId, x, y); fclose(file); - return NULL; + delete pTile; + return nullptr; } fclose(file); @@ -475,7 +478,10 @@ namespace MMAP PhasedTile* pt = new PhasedTile(); // remove old tile if (dtStatusFailed(navMesh->removeTile(loadedTileRefs[packedXY], &pt->data, &pt->dataSize))) + { TC_LOG_ERROR("phase", "MMapData::AddSwap: Could not unload %04u%02i%02i.mmtile from navmesh", _mapId, x, y); + delete pt; + } else { TC_LOG_DEBUG("phase", "MMapData::AddSwap: Unloaded %04u%02i%02i.mmtile from navmesh", _mapId, x, y); |