[Bf-blender-cvs] [414baf9780d] blender-v3.3-release: Fix invalid memory handling in C++ OBJ MTL Importer.
Bastien Montagne
noreply at git.blender.org
Thu Sep 1 10:34:04 CEST 2022
Commit: 414baf9780d9074447378b2e378c3f1dc923da32
Author: Bastien Montagne
Date: Thu Sep 1 09:16:15 2022 +0200
Branches: blender-v3.3-release
https://developer.blender.org/rB414baf9780d9074447378b2e378c3f1dc923da32
Fix invalid memory handling in C++ OBJ MTL Importer.
An ID created with regualr ID management code should never ever be
directly freed directly.
For embedded nodetrees, there is a dedicated function.
Reviewed By: aras_p
Differential Revision: https://developer.blender.org/D15827
===================================================================
M source/blender/io/wavefront_obj/importer/obj_import_mtl.cc
M source/blender/io/wavefront_obj/importer/obj_import_mtl.hh
===================================================================
diff --git a/source/blender/io/wavefront_obj/importer/obj_import_mtl.cc b/source/blender/io/wavefront_obj/importer/obj_import_mtl.cc
index 093cbec32fe..19261dd660b 100644
--- a/source/blender/io/wavefront_obj/importer/obj_import_mtl.cc
+++ b/source/blender/io/wavefront_obj/importer/obj_import_mtl.cc
@@ -143,6 +143,11 @@ static Image *load_texture_image(Main *bmain, const tex_map_XX &tex_map, bool re
return image;
}
+void UniqueNodetreeDeleter::operator()(bNodeTree *node)
+{
+ ntreeFreeEmbeddedTree(node);
+}
+
ShaderNodetreeWrap::ShaderNodetreeWrap(Main *bmain,
const MTLMaterial &mtl_mat,
Material *mat,
diff --git a/source/blender/io/wavefront_obj/importer/obj_import_mtl.hh b/source/blender/io/wavefront_obj/importer/obj_import_mtl.hh
index 17dd0106fea..336af72083b 100644
--- a/source/blender/io/wavefront_obj/importer/obj_import_mtl.hh
+++ b/source/blender/io/wavefront_obj/importer/obj_import_mtl.hh
@@ -22,10 +22,7 @@
namespace blender::io::obj {
struct UniqueNodetreeDeleter {
- void operator()(bNodeTree *node)
- {
- MEM_freeN(node);
- }
+ void operator()(bNodeTree *node);
};
using unique_nodetree_ptr = std::unique_ptr<bNodeTree, UniqueNodetreeDeleter>;
More information about the Bf-blender-cvs
mailing list