Fix leaking file handles in Sample_TileMesh::loadAll after various failures

Leaks were reported by Coverity Scan
This commit is contained in:
Ben Hymers 2016-03-13 22:57:58 +00:00
parent e1f297e4bf
commit 299ed08087

View File

@ -324,7 +324,10 @@ dtNavMesh* Sample_TileMesh::loadAll(const char* path)
NavMeshTileHeader tileHeader; NavMeshTileHeader tileHeader;
readLen = fread(&tileHeader, sizeof(tileHeader), 1, fp); readLen = fread(&tileHeader, sizeof(tileHeader), 1, fp);
if (readLen != 1) if (readLen != 1)
{
fclose(fp);
return 0; return 0;
}
if (!tileHeader.tileRef || !tileHeader.dataSize) if (!tileHeader.tileRef || !tileHeader.dataSize)
break; break;
@ -334,7 +337,10 @@ dtNavMesh* Sample_TileMesh::loadAll(const char* path)
memset(data, 0, tileHeader.dataSize); memset(data, 0, tileHeader.dataSize);
readLen = fread(data, tileHeader.dataSize, 1, fp); readLen = fread(data, tileHeader.dataSize, 1, fp);
if (readLen != 1) if (readLen != 1)
{
fclose(fp);
return 0; return 0;
}
mesh->addTile(data, tileHeader.dataSize, DT_TILE_FREE_DATA, tileHeader.tileRef, 0); mesh->addTile(data, tileHeader.dataSize, DT_TILE_FREE_DATA, tileHeader.tileRef, 0);
} }