On Thu, 2010-03-04 at 02:00 -0800, Vinson Lee wrote: > Michel, thanks for spotting this. > > I've reverted the bad commit. Please go ahead and submit your correct fix.
Actually, I wonder if something like the below isn't needed to avoid any undesired effects from integer overflows. diff --git a/src/mesa/main/api_validate.c b/src/mesa/main/api_validate.c index 326ad6f..8460265 100644 --- a/src/mesa/main/api_validate.c +++ b/src/mesa/main/api_validate.c @@ -130,6 +130,7 @@ check_index_bounds(GLcontext *ctx, GLsizei count, GLenum type, struct _mesa_prim prim; struct _mesa_index_buffer ib; GLuint min, max; + GLint64 min64, max64; /* Only the X Server needs to do this -- otherwise, accessing outside * array/BO bounds allows application termination. @@ -146,9 +147,12 @@ check_index_bounds(GLcontext *ctx, GLsizei count, GLenum type, ib.obj = ctx->Array.ElementArrayBufferObj; vbo_get_minmax_index(ctx, &prim, &ib, &min, &max); + min64 = min; + min64 += basevertex; + max64 = max; + max64 += basevertex; - if (min + basevertex < 0 || - max + basevertex > ctx->Array.ArrayObj->_MaxElement) { + if (min64 < 0 || max64 > ctx->Array.ArrayObj->_MaxElement) { /* the max element is out of bounds of one or more enabled arrays */ _mesa_warning(ctx, "glDrawElements() index=%u is " "out of bounds (max=%u)", max, ctx->Array.ArrayObj->_MaxElement); -- Earthling Michel Dänzer | http://www.vmware.com Libre software enthusiast | Debian, X and DRI developer ------------------------------------------------------------------------------ Download Intel® Parallel Studio Eval Try the new software tools for yourself. Speed compiling, find bugs proactively, and fine-tune applications for parallel performance. See why Intel Parallel Studio got high marks during beta. http://p.sf.net/sfu/intel-sw-dev _______________________________________________ Mesa3d-dev mailing list Mesa3d-dev@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/mesa3d-dev