diff options
| -rw-r--r-- | core/variant_op.cpp | 4 | 
1 files changed, 4 insertions, 0 deletions
diff --git a/core/variant_op.cpp b/core/variant_op.cpp index ea9e29e744..ae47397558 100644 --- a/core/variant_op.cpp +++ b/core/variant_op.cpp @@ -1118,6 +1118,8 @@ void Variant::evaluate(const Operator &p_op, const Variant &p_a,  			CASE_TYPE(math, OP_SHIFT_LEFT, INT) {  				if (p_b.type != INT)  					_RETURN_FAIL; +				if (p_b._data._int < 0 || p_b._data._int >= 64) +					_RETURN_FAIL;  				_RETURN(p_a._data._int << p_b._data._int);  			} @@ -1129,6 +1131,8 @@ void Variant::evaluate(const Operator &p_op, const Variant &p_a,  			CASE_TYPE(math, OP_SHIFT_RIGHT, INT) {  				if (p_b.type != INT)  					_RETURN_FAIL; +				if (p_b._data._int < 0 || p_b._data._int >= 64) +					_RETURN_FAIL;  				_RETURN(p_a._data._int >> p_b._data._int);  			}  |