From 2eead82ce0e7c7c2eb5be252fbcdb62f2c1a30f9 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Sat, 27 May 2017 14:03:15 +1000 Subject: CustomData: assert on bad arguments to free Assert the index is in-range for the layer type. --- source/blender/blenkernel/intern/customdata.c | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) (limited to 'source/blender/blenkernel') 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) -- cgit v1.2.3