glsl/ast: don't crash when func_name is NULL
authorDave Airlie <airlied@redhat.com>
Tue, 3 May 2016 04:39:06 +0000 (14:39 +1000)
committerDave Airlie <airlied@redhat.com>
Mon, 6 Jun 2016 02:54:30 +0000 (12:54 +1000)
This fixes a crash in
GL43-CTS.shader_subroutine.subroutines_not_allowed_as_variables_constructors_and_argument_or_return_types

If we can't find the func_name in one of these paths,
we have emitted an earlier error so just return here.

Reviewed-by: Timothy Arceri <timothy.arceri@collabora.com>
Cc: "11.2 12.0" <mesa-stable@lists.freedesktop.org>
Signed-off-by: Dave Airlie <airlied@redhat.com>
src/compiler/glsl/ast_function.cpp

index a97e6c96114ca0410f28654a80efda1a3fe3c584..f74394fe1d379d068092bcab24286c6ed6c6afe0 100644 (file)
@@ -2078,6 +2078,10 @@ ast_function_expression::hir(exec_list *instructions,
          func_name = id->primary_expression.identifier;
       }
 
+      /* an error was emitted earlier */
+      if (!func_name)
+         return ir_rvalue::error_value(ctx);
+
       ir_function_signature *sig =
         match_function_by_name(func_name, &actual_parameters, state);