summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMartin Capitanio <capnm@capitanio.org>2018-09-04 04:42:23 +0200
committerMartin Capitanio <capnm@capitanio.org>2018-09-04 04:42:23 +0200
commitbcee65284e5852b77dbfa0ae8fdf2e47bd6dcf81 (patch)
tree23fe25db15adfa841bcace6b9b4c8d9fe91c5b6a
parentf50dd682f6a0f9506daaf16fed06f4bc9efa6599 (diff)
Really fix the custom cursor hotspot
Add check for negative values. Fixes #21721
-rw-r--r--platform/osx/os_osx.mm1
-rw-r--r--platform/windows/os_windows.cpp1
-rw-r--r--platform/x11/os_x11.cpp1
3 files changed, 3 insertions, 0 deletions
diff --git a/platform/osx/os_osx.mm b/platform/osx/os_osx.mm
index 16f1ff8e11..44b4223a65 100644
--- a/platform/osx/os_osx.mm
+++ b/platform/osx/os_osx.mm
@@ -1604,6 +1604,7 @@ void OS_OSX::set_custom_mouse_cursor(const RES &p_cursor, CursorShape p_shape, c
}
ERR_FAIL_COND(!texture.is_valid());
+ ERR_FAIL_COND(p_hotspot.x < 0 || p_hotspot.y < 0);
ERR_FAIL_COND(texture_size.width > 256 || texture_size.height > 256);
ERR_FAIL_COND(p_hotspot.x > texture_size.width || p_hotspot.y > texture_size.height);
diff --git a/platform/windows/os_windows.cpp b/platform/windows/os_windows.cpp
index 9d5cae00e8..88793386ab 100644
--- a/platform/windows/os_windows.cpp
+++ b/platform/windows/os_windows.cpp
@@ -2252,6 +2252,7 @@ void OS_Windows::set_custom_mouse_cursor(const RES &p_cursor, CursorShape p_shap
}
ERR_FAIL_COND(!texture.is_valid());
+ ERR_FAIL_COND(p_hotspot.x < 0 || p_hotspot.y < 0);
ERR_FAIL_COND(texture_size.width > 256 || texture_size.height > 256);
ERR_FAIL_COND(p_hotspot.x > texture_size.width || p_hotspot.y > texture_size.height);
diff --git a/platform/x11/os_x11.cpp b/platform/x11/os_x11.cpp
index 606a2371fe..a57a8c6bb9 100644
--- a/platform/x11/os_x11.cpp
+++ b/platform/x11/os_x11.cpp
@@ -2534,6 +2534,7 @@ void OS_X11::set_custom_mouse_cursor(const RES &p_cursor, CursorShape p_shape, c
}
ERR_FAIL_COND(!texture.is_valid());
+ ERR_FAIL_COND(p_hotspot.x < 0 || p_hotspot.y < 0);
ERR_FAIL_COND(texture_size.width > 256 || texture_size.height > 256);
ERR_FAIL_COND(p_hotspot.x > texture_size.width || p_hotspot.y > texture_size.height);