[Bf-blender-cvs] [2eead82ce0e] master: CustomData: assert on bad arguments to free

Campbell Barton noreply at git.blender.org
Sat May 27 06:01:59 CEST 2017


Commit: 2eead82ce0e7c7c2eb5be252fbcdb62f2c1a30f9
Author: Campbell Barton
Date:   Sat May 27 14:03:15 2017 +1000
Branches: master
https://developer.blender.org/rB2eead82ce0e7c7c2eb5be252fbcdb62f2c1a30f9

CustomData: assert on bad arguments to free

Assert the index is in-range for the layer type.

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

M	source/blender/blenkernel/intern/customdata.c

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

diff --git a/source/blender/blenkernel/intern/customdata.c b/source/blender/blenkernel/intern/customdata.c
index 331714301d5..0939d35ed8d 100644
--- a/source/blender/blenkernel/intern/customdata.c
+++ b/source/blender/blenkernel/intern/customdata.c
@@ -1944,17 +1944,16 @@ void *CustomData_add_layer_named(CustomData *data, int type, int alloctype,
 
 bool CustomData_free_layer(CustomData *data, int type, int totelem, int index)
 {
-	if (index < 0) {
-		return false;
-	}
 	const int index_first = CustomData_get_layer_index(data, type);
-	if (index_first == -1) {
-		return false;
-	}
-
 	const int n = index - index_first;
 	int i;
 
+	BLI_assert(index >= index_first);
+	if ((index_first == -1) || (n < 0)) {
+		return false;
+	}
+	BLI_assert(data->layers[index].type == type);
+
 	customData_free_layer__internal(&data->layers[index], totelem);
 
 	for (i = index + 1; i < data->totlayer; ++i)




More information about the Bf-blender-cvs mailing list