From fa0e7342ecb670e6ed84ae63e730926ce7ab0654 Mon Sep 17 00:00:00 2001 From: Matt <5415177+ZehMatt@users.noreply.github.com> Date: Sat, 25 Jan 2025 16:33:14 +0200 Subject: [PATCH] Fix #23701: Potential crash when using mouse wheel on some widgets --- src/openrct2-ui/interface/Window.cpp | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/openrct2-ui/interface/Window.cpp b/src/openrct2-ui/interface/Window.cpp index dfd52d0c8f..3216a66a1c 100644 --- a/src/openrct2-ui/interface/Window.cpp +++ b/src/openrct2-ui/interface/Window.cpp @@ -164,6 +164,9 @@ namespace OpenRCT2 if (widgets[index].type != WindowWidgetType::Spinner && widgets[index].type != WindowWidgetType::ImgBtn) return false; + if (static_cast(index + 2) >= widgets.size()) + return false; + if (widgets[index + 1].type != buttonType) return false; @@ -241,6 +244,8 @@ namespace OpenRCT2 targetWidgetIndex += wheel < 0 ? 1 : 2; } + assert(targetWidgetIndex >= 0 && targetWidgetIndex < w.widgets.size()); + if (WidgetIsDisabled(w, targetWidgetIndex)) { return false;