From 299ed08087282efcc35990de45fa42a16c212cf1 Mon Sep 17 00:00:00 2001 From: Ben Hymers Date: Sun, 13 Mar 2016 22:57:58 +0000 Subject: [PATCH] Fix leaking file handles in Sample_TileMesh::loadAll after various failures Leaks were reported by Coverity Scan --- RecastDemo/Source/Sample_TileMesh.cpp | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/RecastDemo/Source/Sample_TileMesh.cpp b/RecastDemo/Source/Sample_TileMesh.cpp index 675726a..c305743 100644 --- a/RecastDemo/Source/Sample_TileMesh.cpp +++ b/RecastDemo/Source/Sample_TileMesh.cpp @@ -324,7 +324,10 @@ dtNavMesh* Sample_TileMesh::loadAll(const char* path) NavMeshTileHeader tileHeader; readLen = fread(&tileHeader, sizeof(tileHeader), 1, fp); if (readLen != 1) + { + fclose(fp); return 0; + } if (!tileHeader.tileRef || !tileHeader.dataSize) break; @@ -334,7 +337,10 @@ dtNavMesh* Sample_TileMesh::loadAll(const char* path) memset(data, 0, tileHeader.dataSize); readLen = fread(data, tileHeader.dataSize, 1, fp); if (readLen != 1) + { + fclose(fp); return 0; + } mesh->addTile(data, tileHeader.dataSize, DT_TILE_FREE_DATA, tileHeader.tileRef, 0); }