Fix T60304, T60301: setting error message in bevel modifier results in double free
authorJacques Lucke <mail@jlucke.com>
Mon, 14 Jan 2019 13:10:33 +0000 (14:10 +0100)
committerJacques Lucke <mail@jlucke.com>
Mon, 14 Jan 2019 13:10:33 +0000 (14:10 +0100)
source/blender/modifiers/intern/MOD_bevel.c

index 6eee697..319b6c5 100644 (file)
@@ -74,12 +74,13 @@ static void initData(ModifierData *md)
        bmd->clnordata.faceHash = NULL;
 }
 
-static void copyData(const ModifierData *md_src, ModifierData *md_dst, const int UNUSED(flag))
+static void copyData(const ModifierData *md_src, ModifierData *md_dst, const int flag)
 {
        BevelModifierData *bmd_src = (BevelModifierData *)md_src;
        BevelModifierData *bmd_dst = (BevelModifierData *)md_dst;
 
-       *bmd_dst = *bmd_src;
+       modifier_copyData_generic(md_src, md_dst, flag);
+
        bmd_dst->clnordata.faceHash = NULL;
 }
 
@@ -99,6 +100,8 @@ static CustomDataMask requiredDataMask(Object *UNUSED(ob), ModifierData *md)
  */
 static Mesh *applyModifier(ModifierData *md, const ModifierEvalContext *ctx, Mesh *mesh)
 {
+       // modifier_setError(md, "Hello world");
+       // return BKE_mesh_new_nomain(0, 0, 0, 0, 0);
        Mesh *result;
        BMesh *bm;
        BMIter iter;