summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHelge Deller <deller@gmx.de>2026-08-21 10:01:22 +0200
committerHelge Deller <deller@gmx.de>2026-08-22 09:33:45 +0200
commit3c0ebc4c07ff1147724d8f370203e62390ae7ee7 (patch)
treeeb5063b55bb27a95fd5f18022ed21732ab751040
parent26260251022fbc2f248a3d747a9b2b961b18d2d8 (diff)
downloadlinux-3c0ebc4c07ff1147724d8f370203e62390ae7ee7.tar.gz
linux-3c0ebc4c07ff1147724d8f370203e62390ae7ee7.zip
vt: hide cursor prior to font changes to avoid out-of-bound reads
KASAN reports slab-out-of-bounds errors: BUG: KASAN: slab-out-of-bounds in soft_cursor+0x3eb/0xb70 drivers/video/fbdev/core/softcursor.c:70 When changing the size of a sceen font, the amount of columns and rows on a screen may change and thus the current position of the cursor and the selection may suddenly lay outside of the current screen limits. Clear the selection and hide the cursor before any font changes to avoid such possible out of bounds accesses. Reported-by: Jaeyoung Chung <jjy600901@snu.ac.kr> Signed-off-by: Helge Deller <deller@gmx.de> Link: https://lore.kernel.org/all/20260819163440.3702924-1-jjy600901@snu.ac.kr/
-rw-r--r--drivers/tty/vt/vt.c9
1 files changed, 5 insertions, 4 deletions
diff --git a/drivers/tty/vt/vt.c b/drivers/tty/vt/vt.c
index 8f467b22b799..57edf37495a8 100644
--- a/drivers/tty/vt/vt.c
+++ b/drivers/tty/vt/vt.c
@@ -4986,8 +4986,8 @@ static int con_font_set(struct vc_data *vc, const struct console_font_op *op)
if (!vc->vc_sw->con_font_set)
return -ENOSYS;
- if (vc_is_sel(vc))
- clear_selection();
+ /* hide selection and cursor prior font changes */
+ hide_cursor(vc);
return vc->vc_sw->con_font_set(vc, &font, vpitch, op->flags);
}
@@ -5011,8 +5011,9 @@ static int con_font_default(struct vc_data *vc, struct console_font_op *op)
if (!vc->vc_sw->con_font_default)
return -ENOSYS;
- if (vc_is_sel(vc))
- clear_selection();
+ /* hide selection and cursor prior font changes */
+ hide_cursor(vc);
+
int ret = vc->vc_sw->con_font_default(vc, &font, s);
if (ret)
return ret;