diff options
author | Campbell Barton <ideasman42@gmail.com> | 2014-03-01 13:14:20 +0400 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2014-03-01 13:14:20 +0400 |
commit | 973771723414e49709c100b1c3a48c7bdeb51cdd (patch) | |
tree | d8f1aaf5ef07cc4b748e5176039970771379ac3a /source/blender/blenkernel/intern/navmesh_conversion.c | |
parent | 9742a6f6cb053ff45060f4bb5f5fa96084b7f5b5 (diff) |
Fix for some unlikely memory leaks, remove redundant checks
Diffstat (limited to 'source/blender/blenkernel/intern/navmesh_conversion.c')
-rw-r--r-- | source/blender/blenkernel/intern/navmesh_conversion.c | 8 |
1 files changed, 7 insertions, 1 deletions
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; } |