From d7d827789b4cbb1b55edae890f510302eff2eb49 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cl=C3=A9ment=20Foucault?= Date: Tue, 15 Feb 2022 00:48:18 +0100 Subject: GLShaderInterface: Fix undefined behavior when attributes are optimized away. Optimized out attributes returns an invalid location `-1` resulting in an undefined behavior shift. --- source/blender/gpu/opengl/gl_shader_interface.cc | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'source') diff --git a/source/blender/gpu/opengl/gl_shader_interface.cc b/source/blender/gpu/opengl/gl_shader_interface.cc index 71b908665d3..292e52e857b 100644 --- a/source/blender/gpu/opengl/gl_shader_interface.cc +++ b/source/blender/gpu/opengl/gl_shader_interface.cc @@ -391,7 +391,9 @@ GLShaderInterface::GLShaderInterface(GLuint program, const shader::ShaderCreateI else { input->location = input->binding = attr.index; } - enabled_attr_mask_ |= (1 << input->location); + if (input->location != -1) { + enabled_attr_mask_ |= (1 << input->location); + } input++; } -- cgit v1.2.3