From eec1aec071df9ef2a78d577d0f6b4ed76cb6c6ff Mon Sep 17 00:00:00 2001 From: Scott Lahteine Date: Sun, 19 May 2024 18:43:04 -0500 Subject: [PATCH] =?UTF-8?q?=F0=9F=90=9B=20Fix=20multi-byte=20menu=20string?= =?UTF-8?q?=20buffer=20overrun=20(#27100)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Marlin/src/lcd/lcdprint.cpp | 2 +- Marlin/src/module/motion.cpp | 3 +-- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/Marlin/src/lcd/lcdprint.cpp b/Marlin/src/lcd/lcdprint.cpp index ea833f53a1..475664f45a 100644 --- a/Marlin/src/lcd/lcdprint.cpp +++ b/Marlin/src/lcd/lcdprint.cpp @@ -114,7 +114,7 @@ lcd_uint_t expand_u8str_P(char * const outstr, PGM_P const ptpl, const int8_t in * Return the number of characters emitted */ lcd_uint_t lcd_put_u8str_P(PGM_P const ptpl, const int8_t ind, const char *cstr/*=nullptr*/, FSTR_P const fstr/*=nullptr*/, const lcd_uint_t maxlen/*=LCD_WIDTH*/) { - char estr[maxlen + 2]; + char estr[maxlen * LANG_CHARSIZE + 2]; const lcd_uint_t outlen = expand_u8str_P(estr, ptpl, ind, cstr, fstr, maxlen); lcd_put_u8str_max(estr, maxlen * (MENU_FONT_WIDTH)); return outlen; diff --git a/Marlin/src/module/motion.cpp b/Marlin/src/module/motion.cpp index 26181d8396..473d54cc38 100644 --- a/Marlin/src/module/motion.cpp +++ b/Marlin/src/module/motion.cpp @@ -1637,8 +1637,7 @@ void prepare_line_to_destination() { SERIAL_ECHO_START(); msg.echoln(); - msg.setf(GET_TEXT_F(MSG_HOME_FIRST), need); - ui.set_status(msg); + ui.status_printf(0, GET_TEXT_F(MSG_HOME_FIRST), need); return true; }