浏览代码

Merge pull request #46275 from Chaosus/shader_fix_struct_crash

Prevents shader crash if two struct with the same name are declared
Rémi Verschelde 4 年之前
父节点
当前提交
b87f448785
共有 1 个文件被更改,包括 4 次插入0 次删除
  1. 4 0
      servers/rendering/shader_language.cpp

+ 4 - 0
servers/rendering/shader_language.cpp

@@ -6135,6 +6135,10 @@ Error ShaderLanguage::_parse_shader(const Map<StringName, FunctionInfo> &p_funct
 				tk = _get_token();
 				if (tk.type == TK_IDENTIFIER) {
 					st.name = tk.text;
+					if (shader->structs.has(st.name)) {
+						_set_error("Redefinition of '" + String(st.name) + "'");
+						return ERR_PARSE_ERROR;
+					}
 					tk = _get_token();
 					if (tk.type != TK_CURLY_BRACKET_OPEN) {
 						_set_error("Expected '{'");