summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRĂ©mi Verschelde <rverschelde@gmail.com>2019-10-28 08:38:46 +0100
committerGitHub <noreply@github.com>2019-10-28 08:38:46 +0100
commit5014baf34be94d5dbfaf80e778c1b90c8998340f (patch)
tree1335fa47fc4274403571c45154621bbbe771a76f
parent63c5cd7eb89c5e7d24465b910eb6015b344c3f5f (diff)
parentef6161532dbd579fed2c537e76ff0ea60d32595c (diff)
Merge pull request #33130 from Chaosus/fix_shader_crash
Fix shader crash if non-boolean expression inserted into "if"
-rw-r--r--servers/visual/shader_language.cpp5
1 files changed, 5 insertions, 0 deletions
diff --git a/servers/visual/shader_language.cpp b/servers/visual/shader_language.cpp
index 41a6b27b84..4e5e816c02 100644
--- a/servers/visual/shader_language.cpp
+++ b/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");