summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYuri Roubinsky <chaosus89@gmail.com>2019-10-28 08:35:33 +0300
committerYuri Roubinsky <chaosus89@gmail.com>2019-10-28 08:35:33 +0300
commitef6161532dbd579fed2c537e76ff0ea60d32595c (patch)
tree33f622bfdcbd411b9dea9012936ce29f21c815f2
parent816341af25749e3c2ee1fad370c0c5785293f5b6 (diff)
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");