[Bf-blender-cvs] [919e38c] master: Fix for unlikely NULL pointer dereference

Campbell Barton noreply at git.blender.org
Fri Feb 20 07:19:11 CET 2015


Commit: 919e38cfc800fa2ee148e9b4ea8e2e56f4bc08b6
Author: Campbell Barton
Date:   Fri Feb 20 17:17:36 2015 +1100
Branches: master
https://developer.blender.org/rB919e38cfc800fa2ee148e9b4ea8e2e56f4bc08b6

Fix for unlikely NULL pointer dereference

Potential crash reading freestyle modifiers from future blend-files

===================================================================

M	source/blender/blenkernel/intern/fcurve.c
M	source/blender/blenkernel/intern/linestyle.c
M	source/blender/gpu/intern/gpu_compositing.c
M	source/blender/render/intern/source/bake_api.c

===================================================================

diff --git a/source/blender/blenkernel/intern/fcurve.c b/source/blender/blenkernel/intern/fcurve.c
index 7659177..81321b9 100644
--- a/source/blender/blenkernel/intern/fcurve.c
+++ b/source/blender/blenkernel/intern/fcurve.c
@@ -2102,7 +2102,7 @@ static float fcurve_eval_keyframes(FCurve *fcu, BezTriple *bezts, float evaltime
 		 *                                 This lower bound was established in b888a32eee8147b028464336ad2404d8155c64dd
 		 */
 		a = binarysearch_bezt_index_ex(bezts, evaltime, fcu->totvert, 0.0001, &exact);
-		if (G.debug & G_DEBUG) printf("eval fcurve '%s' - %f => %d/%d, %d\n", fcu->rna_path, evaltime, a, fcu->totvert, exact);
+		if (G.debug & G_DEBUG) printf("eval fcurve '%s' - %f => %u/%u, %d\n", fcu->rna_path, evaltime, a, fcu->totvert, exact);
 		
 		if (exact) {
 			/* index returned must be interpreted differently when it sits on top of an existing keyframe 
diff --git a/source/blender/blenkernel/intern/linestyle.c b/source/blender/blenkernel/intern/linestyle.c
index d244e9d..1a5760b 100644
--- a/source/blender/blenkernel/intern/linestyle.c
+++ b/source/blender/blenkernel/intern/linestyle.c
@@ -280,6 +280,9 @@ LineStyleModifier *BKE_linestyle_color_modifier_add(FreestyleLineStyle *linestyl
 	LineStyleModifier *m;
 
 	m = alloc_color_modifier(name, type);
+	if (UNLIKELY(m == NULL)) {
+		return NULL;
+	}
 	m->blend = MA_RAMP_BLEND;
 
 	switch (type) {
@@ -314,6 +317,9 @@ LineStyleModifier *BKE_linestyle_color_modifier_copy(FreestyleLineStyle *linesty
 	LineStyleModifier *new_m;
 
 	new_m = alloc_color_modifier(m->name, m->type);
+	if (UNLIKELY(new_m == NULL)) {
+		return NULL;
+	}
 	new_m->influence = m->influence;
 	new_m->flags = m->flags;
 	new_m->blend = m->blend;
diff --git a/source/blender/gpu/intern/gpu_compositing.c b/source/blender/gpu/intern/gpu_compositing.c
index 89fa1a5..e0a55b2 100644
--- a/source/blender/gpu/intern/gpu_compositing.c
+++ b/source/blender/gpu/intern/gpu_compositing.c
@@ -267,7 +267,7 @@ bool GPU_fx_compositor_initialize_passes(
 	int w = BLI_rcti_size_x(rect), h = BLI_rcti_size_y(rect);
 	char err_out[256];
 	int num_passes = 0;
-	char fx_flag = fx_settings->fx_flag;
+	char fx_flag;
 
 	fx->effects = 0;
 
@@ -276,6 +276,8 @@ bool GPU_fx_compositor_initialize_passes(
 		return false;
 	}
 
+	fx_flag = fx_settings->fx_flag;
+
 	/* disable effects if no options passed for them */
 	if (!fx_settings->dof) {
 		fx_flag &= ~GPU_FX_FLAG_DOF;
diff --git a/source/blender/render/intern/source/bake_api.c b/source/blender/render/intern/source/bake_api.c
index ab680cb..ecfb86c 100644
--- a/source/blender/render/intern/source/bake_api.c
+++ b/source/blender/render/intern/source/bake_api.c
@@ -928,7 +928,6 @@ bool RE_bake_internal(
 		case SCE_PASS_UV:
 		{
 			return bake_uv(pixel_array, num_pixels, depth, result);
-			break;
 		}
 		default:
 			break;




More information about the Bf-blender-cvs mailing list