Browse Source

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 years ago
parent
commit
b87f448785
1 changed files with 4 additions and 0 deletions
  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 '{'");