From 1964d2ae8c287726685a63e45e098623561e465d Mon Sep 17 00:00:00 2001 From: Raphael Coeffic Date: Sat, 8 May 2021 08:37:53 +0200 Subject: [PATCH] Check boundaries on characters / fonts --- radio/src/thirdparty/libopenui/src/bitmapbuffer.cpp | 2 +- radio/src/thirdparty/libopenui/src/libopenui_globals.h | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/radio/src/thirdparty/libopenui/src/bitmapbuffer.cpp b/radio/src/thirdparty/libopenui/src/bitmapbuffer.cpp index 230d3b8f9..b7a342f3d 100755 --- a/radio/src/thirdparty/libopenui/src/bitmapbuffer.cpp +++ b/radio/src/thirdparty/libopenui/src/bitmapbuffer.cpp @@ -856,7 +856,7 @@ coord_t BitmapBuffer::drawSizedText(coord_t x, coord_t y, const char * s, uint8_ uint8_t width = drawChar(x, y, font, fontspecs, c, flags); INCREMENT_POS(width + CHAR_SPACING); } - else if ((c >= 0x20) && (c < CJK_FIRST_LETTER_INDEX + 0x20)) { + else if ((c >= 0x20) && (c < fontCharactersTable[FONT_INDEX(flags)] + 0x20)) { uint8_t width = drawChar(x, y, font, fontspecs, getMappedChar(c), flags); if ((flags & SPACING_NUMBERS_CONST) && c >= '0' && c <= '9') INCREMENT_POS(getCharWidth('9', fontspecs) + CHAR_SPACING); diff --git a/radio/src/thirdparty/libopenui/src/libopenui_globals.h b/radio/src/thirdparty/libopenui/src/libopenui_globals.h index 20a3e74e3..c1352e747 100644 --- a/radio/src/thirdparty/libopenui/src/libopenui_globals.h +++ b/radio/src/thirdparty/libopenui/src/libopenui_globals.h @@ -22,6 +22,7 @@ #include #include "libopenui_config.h" +extern const uint16_t fontCharactersTable[FONTS_COUNT]; extern const uint16_t * const fontspecsTable[FONTS_COUNT]; extern const uint8_t * fontsTable[FONTS_COUNT];