[Mesa-dev] [PATCH] svga: Disable bogus assertions concerning min_index/max_index.

Jakob Bornecrantz jakob at vmware.com
Fri Mar 9 09:58:38 PST 2012


----- Original Message -----
> From: José Fonseca <jfonseca at vmware.com>
> 
> min_index/max_index are merely conservative guesses, so we can't
> make buffer overflow detection based on their values.

Tested-by: Jakob Bornecrantz <jakob at vmware.com>

Cheers, Jakob.

> ---
>  src/gallium/drivers/svga/svga_draw.c |   15 +++++++--------
>  1 files 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);
> --
> 1.7.9.1
> 
> 


More information about the mesa-dev mailing list