From d042763750c7332850df83cb525d18af9cf1b126 Mon Sep 17 00:00:00 2001 From: Max Shawabkeh Date: Sat, 24 May 2025 13:10:46 -0700 Subject: [PATCH] Fix shader compiler crash when parsing case labels with non-existent vars. --- servers/rendering/shader_language.cpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/servers/rendering/shader_language.cpp b/servers/rendering/shader_language.cpp index 17f599d0fa..68a0f78c0b 100644 --- a/servers/rendering/shader_language.cpp +++ b/servers/rendering/shader_language.cpp @@ -8532,7 +8532,11 @@ Error ShaderLanguage::_parse_block(BlockNode *p_block, const FunctionInfo &p_fun DataType data_type; bool is_const; - _find_identifier(p_block, false, p_function_info, tk.text, &data_type, nullptr, &is_const); + bool found = _find_identifier(p_block, false, p_function_info, tk.text, &data_type, nullptr, &is_const); + if (!found) { + _set_error(vformat(RTR("Undefined identifier '%s' in a case label."), String(tk.text))); + return ERR_PARSE_ERROR; + } if (is_const && data_type == p_block->expected_type) { correct_constant_expression = true; }