From: Tapani Pälli Date: Mon, 26 Oct 2015 09:13:14 +0000 (+0200) Subject: mesa: add additional checks for uniform location query X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=8ae4317c3643f1728f99172812df6df2d30456bb;p=mesa.git mesa: add additional checks for uniform location query Patch adds additional check to make sure we don't return locations for structures or arrays of structures. From page 79 of the OpenGL 4.2 spec: "A valid name cannot be a structure, an array of structures, or any portion of a single vector or a matrix." v2: use without-array() to simplify code (Timothy) No Piglit or CTS regressions observed. Signed-off-by: Tapani Pälli Reviewed-by: Samuel Iglesias Gonsálvez --- diff --git a/src/mesa/main/shader_query.cpp b/src/mesa/main/shader_query.cpp index 8182d3dcc04..84cbfbcd4af 100644 --- a/src/mesa/main/shader_query.cpp +++ b/src/mesa/main/shader_query.cpp @@ -808,6 +808,14 @@ program_resource_location(struct gl_shader_program *shProg, if (RESOURCE_UNI(res)->builtin) return -1; + /* From page 79 of the OpenGL 4.2 spec: + * + * "A valid name cannot be a structure, an array of structures, or any + * portion of a single vector or a matrix." + */ + if (RESOURCE_UNI(res)->type->without_array()->is_record()) + return -1; + /* From the GL_ARB_uniform_buffer_object spec: * * "The value -1 will be returned if does not correspond to an