From 973771723414e49709c100b1c3a48c7bdeb51cdd Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Sat, 1 Mar 2014 20:14:20 +1100 Subject: Fix for some unlikely memory leaks, remove redundant checks --- source/blender/blenkernel/intern/navmesh_conversion.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) (limited to 'source/blender/blenkernel/intern/navmesh_conversion.c') diff --git a/source/blender/blenkernel/intern/navmesh_conversion.c b/source/blender/blenkernel/intern/navmesh_conversion.c index 3c499908bf7..28ef1180f53 100644 --- a/source/blender/blenkernel/intern/navmesh_conversion.c +++ b/source/blender/blenkernel/intern/navmesh_conversion.c @@ -400,7 +400,7 @@ int buildNavMeshData(const int nverts, const float *verts, if (curpolyidx != prevpolyidx) { if (curpolyidx != prevpolyidx + 1) { printf("Converting navmesh: Error! Wrong order of detailed mesh faces\n"); - return 0; + goto fail; } dmesh = dmesh == NULL ? dmeshes : dmesh + 4; dmesh[2] = (unsigned short)i; /* tbase */ @@ -427,6 +427,12 @@ int buildNavMeshData(const int nverts, const float *verts, *dtrisToTrisMap_r = dtrisToTrisMap; return 1; + +fail: + MEM_freeN(dmeshes); + MEM_freeN(dtrisToPolysMap); + MEM_freeN(dtrisToTrisMap); + return 0; } -- cgit v1.2.3