From 098d5b22395e123e4990b73a2ad7bf703adf068b Mon Sep 17 00:00:00 2001 From: Patric Stout Date: Wed, 10 Mar 2021 13:39:03 +0100 Subject: [PATCH] Fix #8711: having gui_zoom lower than zoom_min causes crashes (#8835) gui_zoom was never clamp'd between zoom_min/zoom_max. zoom_min controls how zoomed-in we load sprites. For a value of 1, no quad-sizes sprites are loaded. If gui_zoom would be 0, meaning it wants quad-sized sprites to display, it was printing random stuff to the screen, which could or could not result in crashes. --- src/gfx.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/gfx.cpp b/src/gfx.cpp index 826f93f54c..3189b8d96b 100644 --- a/src/gfx.cpp +++ b/src/gfx.cpp @@ -1893,7 +1893,9 @@ void UpdateGUIZoom() if (_gui_zoom_cfg == ZOOM_LVL_CFG_AUTO) { _gui_zoom = static_cast(Clamp(VideoDriver::GetInstance()->GetSuggestedUIZoom(), _settings_client.gui.zoom_min, _settings_client.gui.zoom_max)); } else { - _gui_zoom = static_cast(_gui_zoom_cfg); + _gui_zoom = static_cast(Clamp(_gui_zoom_cfg, _settings_client.gui.zoom_min, _settings_client.gui.zoom_max)); + /* Write the value back in case it was not between min/max. */ + _gui_zoom_cfg = _gui_zoom; } /* Determine real font zoom to use. */