Fix leaking file handles in Sample_TileMesh::loadAll after various failures
Leaks were reported by Coverity Scan
This commit is contained in:
parent
e1f297e4bf
commit
299ed08087
@ -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);
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user