From 147e22ef700124dcbaa5576b72a2a77e73adf350 Mon Sep 17 00:00:00 2001 From: Bastien Montagne Date: Mon, 28 Jan 2019 21:46:05 +0100 Subject: Fix T60840: Serious memleak in solidify modifier. Another one painful to pin down, due to misleading info in report, and more than anything else, waaayyyyy too complex example file! --- source/blender/modifiers/intern/MOD_solidify.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'source/blender/modifiers') diff --git a/source/blender/modifiers/intern/MOD_solidify.c b/source/blender/modifiers/intern/MOD_solidify.c index 6283b7a250d..d43e843f9d5 100644 --- a/source/blender/modifiers/intern/MOD_solidify.c +++ b/source/blender/modifiers/intern/MOD_solidify.c @@ -379,7 +379,10 @@ static Mesh *applyModifier( CustomData_copy_data(&mesh->edata, &result->edata, 0, (int)numEdges, (int)numEdges); CustomData_copy_data(&mesh->ldata, &result->ldata, 0, 0, (int)numLoops); - CustomData_copy_data(&mesh->ldata, &result->ldata, 0, (int)numLoops, (int)numLoops); + /* DO NOT copy here the 'copied' part of loop data, we want to reverse loops + * (so that winding of copied face get reversed, so that normals get reversed + * and point in expected direction...). + * If we also copy data here, then this data get overwritten (and allocated memory becomes memleak). */ CustomData_copy_data(&mesh->pdata, &result->pdata, 0, 0, (int)numFaces); CustomData_copy_data(&mesh->pdata, &result->pdata, 0, (int)numFaces, (int)numFaces); -- cgit v1.2.3