glsl/linker: link error on too many subroutine functions.

This fixes:
GL45-CTS.explicit_uniform_location.subroutine-index-negative-link-max-num-of-indices

Reviewed-by: Chris Forbes <chrisforbes@google.com>
Signed-off-by: Dave Airlie <airlied@redhat.com>
This commit is contained in:
Dave Airlie 2016-05-17 14:52:38 +10:00
parent 18b0a13e80
commit 432ac19c1a
1 changed files with 4 additions and 0 deletions

View File

@ -4229,6 +4229,10 @@ link_assign_subroutine_types(struct gl_shader_program *prog)
if (!fn->num_subroutine_types)
continue;
if (sh->NumSubroutineFunctions + 1 > MAX_SUBROUTINES) {
linker_error(prog, "Too many subroutine functions declared.\n");
return;
}
sh->SubroutineFunctions = reralloc(sh, sh->SubroutineFunctions,
struct gl_subroutine_function,
sh->NumSubroutineFunctions + 1);