[Mesa-dev] [PATCH 3/3] intel/decoder: Fix is_header_field starting condition.

Lionel Landwerlin lionel.g.landwerlin at intel.com
Thu Apr 13 06:39:29 UTC 2017


Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin at intel.com>

On 12/04/17 23:33, Kenneth Graunke wrote:
> Starting positions >= 32 are not part of the header, rather than >.
>
> Caught by Coverity, which found that "bits <<= field->start" may shift
> by 32, which has undefined behavior.
>
> CID: 1404968
> ---
>   src/intel/common/gen_decoder.c | 2 +-
>   1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/src/intel/common/gen_decoder.c b/src/intel/common/gen_decoder.c
> index 03c9c7f8d46..e3327d38542 100644
> --- a/src/intel/common/gen_decoder.c
> +++ b/src/intel/common/gen_decoder.c
> @@ -849,7 +849,7 @@ is_header_field(struct gen_group *group, struct gen_field *field)
>   {
>      uint32_t bits;
>   
> -   if (field->start > 32)
> +   if (field->start >= 32)
>         return false;
>   
>      bits = (1U << (field->end - field->start + 1)) - 1;




More information about the mesa-dev mailing list