[Bf-blender-cvs] [147e22ef700] master: Fix T60840: Serious memleak in solidify modifier.
Bastien Montagne
noreply at git.blender.org
Mon Jan 28 21:54:54 CET 2019
Commit: 147e22ef700124dcbaa5576b72a2a77e73adf350
Author: Bastien Montagne
Date: Mon Jan 28 21:46:05 2019 +0100
Branches: master
https://developer.blender.org/rB147e22ef700124dcbaa5576b72a2a77e73adf350
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!
===================================================================
M source/blender/modifiers/intern/MOD_solidify.c
===================================================================
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);
More information about the Bf-blender-cvs
mailing list