[Bf-blender-cvs] [35df9f80b9c] blender-v3.3-release: Fix T99576: Guard against empty names when removing attributes

Tom Edwards noreply at git.blender.org
Mon Aug 29 21:54:19 CEST 2022


Commit: 35df9f80b9c73e851c28ac27511a50a6f4f41d5b
Author: Tom Edwards
Date:   Mon Aug 29 14:45:55 2022 -0500
Branches: blender-v3.3-release
https://developer.blender.org/rB35df9f80b9c73e851c28ac27511a50a6f4f41d5b

Fix T99576: Guard against empty names when removing attributes

It's possible for misbehaving scripts written before 3.3 to reach
this state and crash Blender. With this change, the error is reduced
to a Python exception.

Differential Revision: https://developer.blender.org/D15724

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

M	source/blender/blenkernel/intern/attribute.cc

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

diff --git a/source/blender/blenkernel/intern/attribute.cc b/source/blender/blenkernel/intern/attribute.cc
index b6d39486313..495a2c82332 100644
--- a/source/blender/blenkernel/intern/attribute.cc
+++ b/source/blender/blenkernel/intern/attribute.cc
@@ -288,6 +288,10 @@ CustomDataLayer *BKE_id_attribute_duplicate(ID *id, const char *name, ReportList
 bool BKE_id_attribute_remove(ID *id, const char *name, ReportList *reports)
 {
   using namespace blender::bke;
+  if (!name || name[0] == '\0') {
+    BKE_report(reports, RPT_ERROR, "The attribute name must not be empty");
+    return false;
+  }
   if (BKE_id_attribute_required(id, name)) {
     BKE_report(reports, RPT_ERROR, "Attribute is required and can't be removed");
     return false;



More information about the Bf-blender-cvs mailing list