From 105ef87842d4ba82dc0235ec154e662cce56a927 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Jos=C3=A9=20Fonseca?= Date: Fri, 2 Mar 2012 12:44:00 +0000 Subject: [PATCH] svga: Disable bogus assertions concerning min_index/max_index. min_index/max_index are merely conservative guesses, so we can't make buffer overflow detection based on their values. Tested-by: Jakob Bornecrantz --- src/gallium/drivers/svga/svga_draw.c | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/src/gallium/drivers/svga/svga_draw.c b/src/gallium/drivers/svga/svga_draw.c index c43d1a3..41e0e1a 100644 --- a/src/gallium/drivers/svga/svga_draw.c +++ b/src/gallium/drivers/svga/svga_draw.c @@ -310,12 +310,6 @@ enum pipe_error svga_hwtnl_prim( struct svga_hwtnl *hwtnl, assert(size); assert(offset < size); assert(min_index <= max_index); - if (index_bias >= 0) { - assert(offset + index_bias*stride < size); - } - if (min_index != ~0 && index_bias >= 0) { - assert(offset + (index_bias + min_index) * stride < size); - } switch (hwtnl->cmd.vdecl[i].identity.type) { case SVGA3D_DECLTYPE_FLOAT1: @@ -375,9 +369,14 @@ enum pipe_error svga_hwtnl_prim( struct svga_hwtnl *hwtnl, break; } - if (max_index != ~0) { - assert(offset + (index_bias + max_index) * stride + width <= size); + if (index_bias >= 0) { + assert(offset + index_bias*stride + width <= size); } + + /* + * min_index/max_index are merely conservative guesses, so we can't + * make buffer overflow detection based on their values. + */ } assert(range->indexWidth == range->indexArray.stride); -- 2.7.4