[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