From 9b71709cb8532cda4bfbbcbf4d0d86d53c0dffb9 Mon Sep 17 00:00:00 2001 From: Kenneth Graunke Date: Wed, 12 Apr 2017 09:53:44 -0700 Subject: [PATCH] intel/decoder: Fix is_header_field starting condition. 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 Reviewed-by: Lionel Landwerlin --- 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;