summaryrefslogtreecommitdiff
path: root/core/math
diff options
context:
space:
mode:
authorRémi Verschelde <rverschelde@gmail.com>2023-02-11 20:44:45 +0100
committerRémi Verschelde <rverschelde@gmail.com>2023-02-11 20:44:45 +0100
commitf011d8ca9ca25232fb335eead1c8eeaf5c7f2c54 (patch)
tree0a117760f82df05f4e3dbf31bdca596cf44da98d /core/math
parent44b41ded82229ca7614403f74234a4282002458b (diff)
Math: Prevent division by zero in posmod
Fixes #43932. Co-authored-by: David Hoppenbrouwers <david@salt-inc.org>
Diffstat (limited to 'core/math')
-rw-r--r--core/math/math_funcs.h2
1 files changed, 2 insertions, 0 deletions
diff --git a/core/math/math_funcs.h b/core/math/math_funcs.h
index 0fa82bb8c1..078320d620 100644
--- a/core/math/math_funcs.h
+++ b/core/math/math_funcs.h
@@ -31,6 +31,7 @@
#ifndef MATH_FUNCS_H
#define MATH_FUNCS_H
+#include "core/error/error_macros.h"
#include "core/math/math_defs.h"
#include "core/math/random_pcg.h"
#include "core/typedefs.h"
@@ -225,6 +226,7 @@ public:
}
static _ALWAYS_INLINE_ int64_t posmod(int64_t p_x, int64_t p_y) {
+ ERR_FAIL_COND_V_MSG(p_y == 0, 0, "Division by zero in posmod is undefined. Returning 0 as fallback.");
int64_t value = p_x % p_y;
if (((value < 0) && (p_y > 0)) || ((value > 0) && (p_y < 0))) {
value += p_y;