Kernel: Fix panic when switching to out-of-bounds console

This was caused by an off-by-two error.
Fixes #19034
This commit is contained in:
Kristoffer Højelse 2023-05-26 18:43:18 +02:00 committed by Jelle Raaijmakers
parent cbdd44b6d2
commit 05bc98a410
Notes: sideshowbarker 2024-07-18 05:37:06 +09:00

View file

@ -253,7 +253,7 @@ void KeyboardDevice::handle_scan_code_input_event(ScanCodeEvent event)
Scheduler::dump_scheduler_state(m_modifiers == (Mod_Ctrl | Mod_Alt | Mod_Shift));
}
if ((m_modifiers & Mod_Alt) != 0 && key >= Key_1 && key <= Key_1 + ConsoleManagement::s_max_virtual_consoles + 1) {
if ((m_modifiers & Mod_Alt) != 0 && key >= Key_1 && key < Key_1 + ConsoleManagement::s_max_virtual_consoles) {
// FIXME: Do something sanely here if we can't allocate a work queue?
MUST(g_io_work->try_queue([key]() {
ConsoleManagement::the().switch_to(key - Key_1);