瀏覽代碼

Fix shader crash if non-boolean expression inserted into "if"

Yuri Roubinsky 5 年之前
父節點
當前提交
ef6161532d
共有 1 個文件被更改,包括 5 次插入0 次删除
  1. 5 0
      servers/visual/shader_language.cpp

+ 5 - 0
servers/visual/shader_language.cpp

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