Browse Source

Merge pull request #33130 from Chaosus/fix_shader_crash

Fix shader crash if non-boolean expression inserted into "if"
Rémi Verschelde 5 năm trước cách đây
mục cha
commit
5014baf34b

+ 5 - 0
servers/visual/shader_language.cpp

@@ -4143,6 +4143,11 @@ Error ShaderLanguage::_parse_block(BlockNode *p_block, const Map<StringName, Bui
 			if (!n)
 			if (!n)
 				return ERR_PARSE_ERROR;
 				return ERR_PARSE_ERROR;
 
 
+			if (n->get_datatype() != TYPE_BOOL) {
+				_set_error("Expected boolean expression");
+				return ERR_PARSE_ERROR;
+			}
+
 			tk = _get_token();
 			tk = _get_token();
 			if (tk.type != TK_PARENTHESIS_CLOSE) {
 			if (tk.type != TK_PARENTHESIS_CLOSE) {
 				_set_error("Expected ')' after expression");
 				_set_error("Expected ')' after expression");