Reviewed-by: Tapani Pälli <tapani.pa...@intel.com>

On 10/29/2015 09:43 AM, Samuel Iglesias Gonsalvez wrote:
Commit 4565b6f did not update the basename match's check for
the case that string would exactly match the name of the
variable if the suffix "[0]" were appended to it.

Fixes two dEQP-GLES31 tests:

dEQP-GLES31.functional.program_interface_query.shader_storage_block.resource_list.block_array
dEQP-GLES31.functional.program_interface_query.shader_storage_block.resource_list.block_array_single_element

v2:
- Change the position of rname_has_array_index_zero to avoid an out-of-bounds
   read. Reported by Tapani Pälli.

Signed-off-by: Samuel Iglesias Gonsalvez <sigles...@igalia.com>
Cc: tapani.pa...@intel.com
---
  src/mesa/main/shader_query.cpp | 3 ++-
  1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/src/mesa/main/shader_query.cpp b/src/mesa/main/shader_query.cpp
index 59ec3d7..fc0276f 100644
--- a/src/mesa/main/shader_query.cpp
+++ b/src/mesa/main/shader_query.cpp
@@ -590,7 +590,8 @@ _mesa_program_resource_find_name(struct gl_shader_program 
*shProg,
           case GL_UNIFORM_BLOCK:
           case GL_SHADER_STORAGE_BLOCK:
              /* Basename match, check if array or struct. */
-            if (name[baselen] == '\0' ||
+            if (rname_has_array_index_zero ||
+                name[baselen] == '\0' ||
                  name[baselen] == '[' ||
                  name[baselen] == '.') {
                 return res;

_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to