Description
In qt3d/src/plugins/renderers/opengl/renderer/renderer.cpp, line 1427, Renderer::cleanupShader the input Shader *shader is sometimes null. This causes a crash as it is dereferenced (shader->peerId()) without checking for null.
void Renderer::cleanupShader(const Shader *shader) { GLShaderManager *glShaderManager = m_glResourceManagers->glShaderManager(); GLShader *glShader = glShaderManager->lookupResource(shader->peerId()); if (glShader != nullptr) glShaderManager->abandon(glShader, shader); }
Adding a simple check for null fixes the crash.
void Renderer::cleanupShader(const Shader *shader) { if (!shader) return; GLShaderManager *glShaderManager = m_glResourceManagers->glShaderManager(); GLShader *glShader = glShaderManager->lookupResource(shader->peerId()); if (glShader != nullptr) glShaderManager->abandon(glShader, shader); }