[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