From 72f3d1ace3d8c07d84d46df750bd79fd9d448aab Mon Sep 17 00:00:00 2001 From: medsouz Date: Mon, 10 Aug 2015 18:15:31 -0400 Subject: [PATCH] Fix scrollbar integer overflow Fixes #1752 --- src/input.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/input.c b/src/input.c index 7a816fe9a3..792ccbbab7 100644 --- a/src/input.c +++ b/src/input.c @@ -693,9 +693,10 @@ static void input_scroll_part_update_hleft(rct_window *w, int widgetIndex, int s { if (window_find_by_number(w->classification, w->number)) { w->scrolls[scroll_id].flags |= HSCROLLBAR_LEFT_PRESSED; - w->scrolls[scroll_id].h_left -= 3; if (w->scrolls[scroll_id].h_left < 0) w->scrolls[scroll_id].h_left = 0; + else if (w->scrolls[scroll_id].h_left >= 3) + w->scrolls[scroll_id].h_left -= 3; widget_scroll_update_thumbs(w, widgetIndex); widget_invalidate_by_number(w->classification, w->number, widgetIndex); } @@ -733,9 +734,10 @@ static void input_scroll_part_update_vtop(rct_window *w, int widgetIndex, int sc {; if (window_find_by_number(w->classification, w->number)) { w->scrolls[scroll_id].flags |= VSCROLLBAR_UP_PRESSED; - w->scrolls[scroll_id].v_top -= 3; if (w->scrolls[scroll_id].v_top < 0) w->scrolls[scroll_id].v_top = 0; + else if (w->scrolls[scroll_id].v_top >= 3) + w->scrolls[scroll_id].v_top -= 3; widget_scroll_update_thumbs(w, widgetIndex); widget_invalidate_by_number(w->classification, w->number, widgetIndex); }