mesa/st: Prevent 'end' < 'start' in vbo_exec_DrawRangeElementsBaseVertex()
We adjust 'end' to fit into _MaxElement, but that may result into a 'start' value bigger than 'end' being passed downstream, causing havoc. This could be seen with arb_robustness_draw-vbo-bounds, due to an application bug.
This commit is contained in:
@@ -943,8 +943,13 @@ vbo_exec_DrawRangeElementsBaseVertex(GLenum mode,
|
||||
/* Set 'end' to the max possible legal value */
|
||||
assert(ctx->Array.ArrayObj->_MaxElement >= 1);
|
||||
end = ctx->Array.ArrayObj->_MaxElement - 1;
|
||||
|
||||
if (end < start) {
|
||||
return;
|
||||
}
|
||||
else if (0) {
|
||||
}
|
||||
|
||||
if (0) {
|
||||
printf("glDraw[Range]Elements{,BaseVertex}"
|
||||
"(start %u, end %u, type 0x%x, count %d) ElemBuf %u, "
|
||||
"base %d\n",
|
||||
|
Reference in New Issue
Block a user