Merge pull request #11078 from hpvb/fix-10717

Don't allow division by false (zero)
This commit is contained in:
Hein-Pieter van Braam 2017-09-15 22:21:15 +02:00 committed by GitHub
commit 79c7e21847

View file

@ -670,7 +670,34 @@ void Variant::evaluate(const Operator &p_op, const Variant &p_a, const Variant &
switch (p_a.type) {
DEFAULT_OP_FAIL(NIL);
DEFAULT_OP_NUM(/, BOOL, _bool);
case BOOL: {
switch (p_b.type) {
case BOOL: {
int64_t b = p_b._data._bool;
if (b == 0) {
r_valid = false;
_RETURN("Division By False");
}
_RETURN(p_a._data._bool / b);
} break;
case INT: {
int64_t b = p_b._data._int;
if (b == 0) {
r_valid = false;
_RETURN("Division By Zero");
}
_RETURN(p_a._data._bool / b);
} break;
case REAL: _RETURN(p_a._data._bool / p_b._data._real);
default: {}
}
r_valid = false;
return;
};
case INT: {
switch (p_b.type) {
case BOOL: {