Browse Source

Fix shader compiler crash when parsing case labels with non-existent vars.

Max Shawabkeh 3 months ago
parent
commit
d042763750
1 changed files with 5 additions and 1 deletions
  1. 5 1
      servers/rendering/shader_language.cpp

+ 5 - 1
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;
 					}