[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [33051] trunk/blender/source/blender/ python/generic/mathutils_vector.c: fix for own recent error, [#24695] column_vector_multiplication call writes past end of array

Campbell Barton ideasman42 at gmail.com
Sun Nov 14 08:42:14 CET 2010


Revision: 33051
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=33051
Author:   campbellbarton
Date:     2010-11-14 08:42:14 +0100 (Sun, 14 Nov 2010)

Log Message:
-----------
fix for own recent error, [#24695] column_vector_multiplication call writes past end of array
was setting the vector array out of bounds with vec*=matrix, where the vector wasnt size 4.

Modified Paths:
--------------
    trunk/blender/source/blender/python/generic/mathutils_vector.c

Modified: trunk/blender/source/blender/python/generic/mathutils_vector.c
===================================================================
--- trunk/blender/source/blender/python/generic/mathutils_vector.c	2010-11-14 07:28:53 UTC (rev 33050)
+++ trunk/blender/source/blender/python/generic/mathutils_vector.c	2010-11-14 07:42:14 UTC (rev 33051)
@@ -1145,11 +1145,14 @@
 	/* only support vec*=float and vec*=mat
 	   vec*=vec result is a float so that wont work */
 	if (MatrixObject_Check(v2)) {
+		float rvec[MAX_DIMENSIONS];
 		if(!BaseMath_ReadCallback((MatrixObject *)v2))
 			return NULL;
 		
-		if(column_vector_multiplication(vec->vec, vec, (MatrixObject*)v2) == -1)
+		if(column_vector_multiplication(rvec, vec, (MatrixObject*)v2) == -1)
 			return NULL;
+
+		memcpy(vec->vec, rvec, sizeof(float) * vec->size);
 	}
 	else if (QuaternionObject_Check(v2)) {
 		/* VEC *= QUAT */





More information about the Bf-blender-cvs mailing list