[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [27083] trunk/blender/source/blender/ render/intern/source/shadbuf.c: Fix integer overflow problem in deep shadow buffer.

Brecht Van Lommel brecht at blender.org
Mon Feb 22 16:03:13 CET 2010


Revision: 27083
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=27083
Author:   blendix
Date:     2010-02-22 16:03:13 +0100 (Mon, 22 Feb 2010)

Log Message:
-----------
Fix integer overflow problem in deep shadow buffer.

Modified Paths:
--------------
    trunk/blender/source/blender/render/intern/source/shadbuf.c

Modified: trunk/blender/source/blender/render/intern/source/shadbuf.c
===================================================================
--- trunk/blender/source/blender/render/intern/source/shadbuf.c	2010-02-22 14:04:04 UTC (rev 27082)
+++ trunk/blender/source/blender/render/intern/source/shadbuf.c	2010-02-22 15:03:13 UTC (rev 27083)
@@ -986,8 +986,9 @@
 	if(a == 0)
 		return 1.0f; /* completely in front of all samples */
 
+	/* converting to float early here because ds->z - prevds->z can overflow */
 	prevds= ds-1;
-	t= (float)(z-bias - prevds->z)/(float)(ds->z - prevds->z);
+	t= ((float)(z-bias) - (float)prevds->z)/((float)ds->z - (float)prevds->z);
 	return t*ds->v + (1.0f-t)*prevds->v;
 }
 





More information about the Bf-blender-cvs mailing list