From c208b84585bb8054b35922eb40cbde41918e5659 Mon Sep 17 00:00:00 2001 From: Solomon Peachy Date: Sun, 23 Nov 2025 08:34:09 -0500 Subject: [PATCH] FS#13695: Fix crash in on-screen keyboard with codepoints > 0x7f We were passing a utf8 byte sequence into a function expecting the actual codepoint value. ...This bug has been around approximately forever. Change-Id: I3f1d8b2508e7fc830ad9ed10bca3c3329c96851c --- apps/recorder/keyboard.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/apps/recorder/keyboard.c b/apps/recorder/keyboard.c index 0b8dbea06c..9ed8f3f12f 100644 --- a/apps/recorder/keyboard.c +++ b/apps/recorder/keyboard.c @@ -765,7 +765,9 @@ int kbd_input(char* text, int buflen, ucschar_t *kbd) else if (state.changed == CHANGED_CURSOR) { int c = utf8seek(state.text, state.editpos); - kbd_spellchar(state.text[c]); + ucschar_t ch; + utf8decode(&state.text[c], &ch); + kbd_spellchar(ch); } else if (state.changed == CHANGED_TEXT) talk_spell(state.text, false); /* speak revised text */