[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [25683] trunk/blender/source/blender: freeing particle modifier would access freed memory ( only to tak the psys to be deleted), set to NULL after freeing and check before tagging.

Campbell Barton ideasman42 at gmail.com
Sun Jan 3 05:35:51 CET 2010


Revision: 25683
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=25683
Author:   campbellbarton
Date:     2010-01-03 05:35:51 +0100 (Sun, 03 Jan 2010)

Log Message:
-----------
freeing particle modifier would access freed memory (only to tak the psys to be deleted), set to NULL after freeing and check before tagging.

Modified Paths:
--------------
    trunk/blender/source/blender/blenkernel/intern/modifier.c
    trunk/blender/source/blender/editors/object/object_modifier.c

Modified: trunk/blender/source/blender/blenkernel/intern/modifier.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/modifier.c	2010-01-03 04:21:40 UTC (rev 25682)
+++ trunk/blender/source/blender/blenkernel/intern/modifier.c	2010-01-03 04:35:51 UTC (rev 25683)
@@ -6866,7 +6866,10 @@
 		psmd->dm=0;
 	}
 
-	psmd->psys->flag |= PSYS_DELETE;
+	/* ED_object_modifier_remove may have freed this first before calling
+	 * modifier_free (which calls this function) */
+	if(psmd->psys)
+		psmd->psys->flag |= PSYS_DELETE;
 }
 static void particleSystemModifier_copyData(ModifierData *md, ModifierData *target)
 {

Modified: trunk/blender/source/blender/editors/object/object_modifier.c
===================================================================
--- trunk/blender/source/blender/editors/object/object_modifier.c	2010-01-03 04:21:40 UTC (rev 25682)
+++ trunk/blender/source/blender/editors/object/object_modifier.c	2010-01-03 04:35:51 UTC (rev 25683)
@@ -165,6 +165,7 @@
 
 		BLI_remlink(&ob->particlesystem, psmd->psys);
 		psys_free(ob, psmd->psys);
+		psmd->psys= NULL;
 	}
 	else if(md->type == eModifierType_Softbody) {
 		if(ob->soft) {





More information about the Bf-blender-cvs mailing list