From 102631486b480d98c2d9b921a95472688bba8416 Mon Sep 17 00:00:00 2001 From: Andrew Williams Date: Tue, 22 Jan 2019 12:51:14 +0100 Subject: Fix potential invalid memory access in surface force field BVH tree. Free the BVH tree immediately along with the mesh, otherwise we might access invalid mesh data. Differential Revision: https://developer.blender.org/D4201 --- source/blender/blenlib/intern/BLI_kdopbvh.c | 16 +++++----------- 1 file changed, 5 insertions(+), 11 deletions(-) (limited to 'source/blender/blenlib/intern/BLI_kdopbvh.c') diff --git a/source/blender/blenlib/intern/BLI_kdopbvh.c b/source/blender/blenlib/intern/BLI_kdopbvh.c index d497c7a83ab..2819c1c5943 100644 --- a/source/blender/blenlib/intern/BLI_kdopbvh.c +++ b/source/blender/blenlib/intern/BLI_kdopbvh.c @@ -908,23 +908,17 @@ BVHTree *BLI_bvhtree_new(int maxsize, float epsilon, char tree_type, char axis) fail: - MEM_SAFE_FREE(tree->nodes); - MEM_SAFE_FREE(tree->nodebv); - MEM_SAFE_FREE(tree->nodechild); - MEM_SAFE_FREE(tree->nodearray); - - MEM_freeN(tree); - + BLI_bvhtree_free(tree); return NULL; } void BLI_bvhtree_free(BVHTree *tree) { if (tree) { - MEM_freeN(tree->nodes); - MEM_freeN(tree->nodearray); - MEM_freeN(tree->nodebv); - MEM_freeN(tree->nodechild); + MEM_SAFE_FREE(tree->nodes); + MEM_SAFE_FREE(tree->nodearray); + MEM_SAFE_FREE(tree->nodebv); + MEM_SAFE_FREE(tree->nodechild); MEM_freeN(tree); } } -- cgit v1.2.3