Browse Source

Merge pull request #68718 from dzil123/fix_fog_shader_buffer_overflow

Fix shader compiler asan out of bounds
Rémi Verschelde 2 years ago
parent
commit
a6a6af32e2
1 changed files with 20 additions and 0 deletions
  1. 20 0
      servers/rendering/shader_language.cpp

+ 20 - 0
servers/rendering/shader_language.cpp

@@ -4309,8 +4309,18 @@ ShaderLanguage::DataType ShaderLanguage::get_scalar_type(DataType p_type) {
 		TYPE_INT,
 		TYPE_INT,
 		TYPE_UINT,
 		TYPE_UINT,
 		TYPE_FLOAT,
 		TYPE_FLOAT,
+		TYPE_INT,
+		TYPE_UINT,
+		TYPE_FLOAT,
+		TYPE_INT,
+		TYPE_UINT,
+		TYPE_FLOAT,
+		TYPE_FLOAT,
+		TYPE_VOID,
 	};
 	};
 
 
+	static_assert(sizeof(scalar_types) / sizeof(*scalar_types) == TYPE_MAX);
+
 	return scalar_types[p_type];
 	return scalar_types[p_type];
 }
 }
 
 
@@ -4340,8 +4350,18 @@ int ShaderLanguage::get_cardinality(DataType p_type) {
 		1,
 		1,
 		1,
 		1,
 		1,
 		1,
+		1,
+		1,
+		1,
+		1,
+		1,
+		1,
+		1,
+		1,
 	};
 	};
 
 
+	static_assert(sizeof(cardinality_table) / sizeof(*cardinality_table) == TYPE_MAX);
+
 	return cardinality_table[p_type];
 	return cardinality_table[p_type];
 }
 }