mesa: check_index_bounds off-by-one fix
authorRoland Scheidegger <sroland@vmware.com>
Mon, 6 Feb 2012 00:04:28 +0000 (01:04 +0100)
committerRoland Scheidegger <sroland@vmware.com>
Mon, 6 Feb 2012 00:04:28 +0000 (01:04 +0100)
in check_index_bounds the comparison needs to be "greater equal" since
contrary to the name _MaxElement is the count of the array (this matches
similar code in vbo_exec_DrawRangeElementsBaseVertex).

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
src/mesa/main/api_validate.c

index b6871d0dbd1492a24a90cc2113def38a4a9c8d61..1ae491f25b5d8141be3e0dfff2c1cc04f4fa04fe 100644 (file)
@@ -187,7 +187,7 @@ check_index_bounds(struct gl_context *ctx, GLsizei count, GLenum type,
    vbo_get_minmax_indices(ctx, &prim, &ib, &min, &max, 1);
 
    if ((int)(min + basevertex) < 0 ||
-       max + basevertex > ctx->Array.ArrayObj->_MaxElement) {
+       max + basevertex >= 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);