[Bf-blender-cvs] [e031a45d602] blender-v3.4-release: Fix T102238: double free when storing attribute on empty geometry

Jacques Lucke noreply at git.blender.org
Mon Nov 7 11:42:40 CET 2022


Commit: e031a45d6026d2fce23fca2b1001e783d2642031
Author: Jacques Lucke
Date:   Mon Nov 7 11:42:26 2022 +0100
Branches: blender-v3.4-release
https://developer.blender.org/rBe031a45d6026d2fce23fca2b1001e783d2642031

Fix T102238: double free when storing attribute on empty geometry

===================================================================

M	source/blender/blenkernel/intern/attribute_access.cc
M	source/blender/blenkernel/intern/customdata.cc

===================================================================

diff --git a/source/blender/blenkernel/intern/attribute_access.cc b/source/blender/blenkernel/intern/attribute_access.cc
index 544427cfdd3..e5c43a3f90e 100644
--- a/source/blender/blenkernel/intern/attribute_access.cc
+++ b/source/blender/blenkernel/intern/attribute_access.cc
@@ -247,11 +247,8 @@ static bool add_custom_data_layer_from_attribute_init(const AttributeIDRef &attr
     }
     case AttributeInit::Type::MoveArray: {
       void *source_data = static_cast<const AttributeInitMoveArray &>(initializer).data;
-      void *data = add_generic_custom_data_layer(
+      add_generic_custom_data_layer(
           custom_data, data_type, CD_ASSIGN, source_data, domain_num, attribute_id);
-      if (source_data != nullptr && data == nullptr) {
-        MEM_freeN(source_data);
-      }
       break;
     }
   }
diff --git a/source/blender/blenkernel/intern/customdata.cc b/source/blender/blenkernel/intern/customdata.cc
index 03a0f17a4bb..e4405abdde8 100644
--- a/source/blender/blenkernel/intern/customdata.cc
+++ b/source/blender/blenkernel/intern/customdata.cc
@@ -2800,6 +2800,7 @@ static CustomDataLayer *customData_add_layer__internal(CustomData *data,
   int flag = 0;
 
   if (!typeInfo->defaultname && CustomData_has_layer(data, type)) {
+    MEM_SAFE_FREE(layerdata);
     return &data->layers[CustomData_get_layer_index(data, type)];
   }



More information about the Bf-blender-cvs mailing list