[Mesa-stable] [PATCH 4/4] glsl: Fix off-by-one error in array size check assertion

Ian Romanick idr at freedesktop.org
Wed Nov 18 11:27:50 PST 2015


On 11/18/2015 10:05 AM, Kenneth Graunke wrote:
> On Wednesday, November 18, 2015 09:44:34 AM Ian Romanick wrote:
>> From: Ian Romanick <ian.d.romanick at intel.com>
>>
>> Apparently, this has been a bug since 2010 (c30f6e5d).
>>
>> Also use ARRAY_SIZE instead of open coding it.
>>
>> Signed-off-by: Ian Romanick <ian.d.romanick at intel.com>
>> Cc: Kenneth Graunke <kenneth at whitecape.org>
>> Cc: mesa-stable at lists.freedesktop.org
>> ---
>>  src/glsl/ir.cpp | 3 +--
>>  1 file changed, 1 insertion(+), 2 deletions(-)
>>
>> diff --git a/src/glsl/ir.cpp b/src/glsl/ir.cpp
>> index 8b5ba71..80cbdbf 100644
>> --- a/src/glsl/ir.cpp
>> +++ b/src/glsl/ir.cpp
>> @@ -1425,8 +1425,7 @@ static const char * const tex_opcode_strs[] = { "tex", "txb", "txl", "txd", "txf
>>  
>>  const char *ir_texture::opcode_string()
>>  {
>> -   assert((unsigned int) op <=
>> -	  sizeof(tex_opcode_strs) / sizeof(tex_opcode_strs[0]));
>> +   assert((unsigned int) op < ARRAY_SIZE(tex_opcode_strs));
>>     return tex_opcode_strs[op];
>>  }
>>  
> 
> Good catch!

I was adding a new texture opcode, and I thought it was weird that the
INTEL_DEBUG=fs dumps showed "(null)" for the instruction opcode... then
I thought it was odd that the assertion didn't trigger. :)

> Reviewed-by: Kenneth Graunke <kenneth at whitecape.org>



More information about the mesa-stable mailing list