mesa: fix type for array indexing validation
authorTimothy Arceri <t_arceri@yahoo.com.au>
Sun, 2 Aug 2015 01:40:26 +0000 (11:40 +1000)
committerTimothy Arceri <t_arceri@yahoo.com.au>
Mon, 3 Aug 2015 11:28:12 +0000 (21:28 +1000)
parse_program_resource_name returns -1 when the index is invalid this needs to
be tested before assigning the value to the unsigned array_index.

In link_varyings.cpp (the other place parse_program_resource_name is used) after
the -1 check is done the value is just assigned to an unsigned variable so it
seems long is just used so we can return the -1 rather than actually expecting
index values to be ridiculously large.

Reviewed-by: Matt Turner <mattst88@gmail.com>
Reviewed-by: Tapani Pälli <tapani.palli@intel.com>
src/mesa/main/shader_query.cpp

index b49fd38d64d3dd0e430158bae1765b30a936308e..a85e4c42ae3dd08126237ac0f5bea4e1e6c2b403 100644 (file)
@@ -506,7 +506,7 @@ _mesa_program_resource_array_size(struct gl_program_resource *res)
 static bool
 valid_array_index(const GLchar *name, unsigned *array_index)
 {
-   unsigned idx = 0;
+   long idx = 0;
    const GLchar *out_base_name_end;
 
    idx = parse_program_resource_name(name, &out_base_name_end);