From 8097beeae11142d1ff9e980bc474f55d500427b6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20Janiszewski?= Date: Wed, 8 Nov 2017 23:44:35 +0100 Subject: [PATCH 1/2] Guard access to font --- src/openrct2/drawing/font.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/openrct2/drawing/font.c b/src/openrct2/drawing/font.c index 34bc9004b0..b933471302 100644 --- a/src/openrct2/drawing/font.c +++ b/src/openrct2/drawing/font.c @@ -14,6 +14,7 @@ *****************************************************************************/ #pragma endregion +#include "../core/Guard.hpp" #include "../rct2/addresses.h" #include "../localisation/localisation.h" #include "../sprites.h" @@ -122,7 +123,9 @@ sint32 font_sprite_get_codepoint_offset(sint32 codepoint) sint32 font_sprite_get_codepoint_width(sint32 fontSpriteBase, sint32 codepoint) { - return _spriteFontCharacterWidths[fontSpriteBase + font_sprite_get_codepoint_offset(codepoint)]; + uint32 spriteFontIdx = fontSpriteBase + font_sprite_get_codepoint_offset(codepoint); + openrct2_assert(spriteFontIdx < countof(_spriteFontCharacterWidths), "Invalid font index %u", spriteFontIdx); + return _spriteFontCharacterWidths[spriteFontIdx]; } sint32 font_sprite_get_codepoint_sprite(sint32 fontSpriteBase, sint32 codepoint) From 9fcef9ed0773eef035e50d8673dc91906d889f89 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20Janiszewski?= Date: Sun, 26 Nov 2017 21:48:54 +0100 Subject: [PATCH 2/2] Only guard font access in RCT2-less builds --- src/openrct2/drawing/font.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/openrct2/drawing/font.c b/src/openrct2/drawing/font.c index b933471302..34437053d0 100644 --- a/src/openrct2/drawing/font.c +++ b/src/openrct2/drawing/font.c @@ -124,7 +124,9 @@ sint32 font_sprite_get_codepoint_offset(sint32 codepoint) sint32 font_sprite_get_codepoint_width(sint32 fontSpriteBase, sint32 codepoint) { uint32 spriteFontIdx = fontSpriteBase + font_sprite_get_codepoint_offset(codepoint); +#ifdef NO_RCT2 openrct2_assert(spriteFontIdx < countof(_spriteFontCharacterWidths), "Invalid font index %u", spriteFontIdx); +#endif return _spriteFontCharacterWidths[spriteFontIdx]; }