diff options
author | Andrew Williams <sobakasu> | 2019-01-22 14:51:14 +0300 |
---|---|---|
committer | Brecht Van Lommel <brechtvanlommel@gmail.com> | 2019-01-22 17:24:06 +0300 |
commit | 102631486b480d98c2d9b921a95472688bba8416 (patch) | |
tree | 56e6db8ef761ec3ce19a395c14eb30b518fabafb /source/blender/blenkernel | |
parent | 414ebc68c2cccabc20eb9b966c8235d222874d56 (diff) |
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
Diffstat (limited to 'source/blender/blenkernel')
-rw-r--r-- | source/blender/blenkernel/intern/bvhutils.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/source/blender/blenkernel/intern/bvhutils.c b/source/blender/blenkernel/intern/bvhutils.c index c264eb8a1d2..644672c52fc 100644 --- a/source/blender/blenkernel/intern/bvhutils.c +++ b/source/blender/blenkernel/intern/bvhutils.c @@ -1112,6 +1112,8 @@ BVHTree *BKE_bvhtree_from_mesh_get( data_cp.vert = mesh->mvert; if (data_cp.cached == false) { + /* TODO: a global mutex lock held during the expensive operation of + * building the BVH tree is really bad for performance. */ BLI_rw_mutex_lock(&cache_rwlock, THREAD_LOCK_WRITE); data_cp.cached = bvhcache_find( mesh->runtime.bvh_cache, type, &data_cp.tree); |