From faebb71b8a84e33f4f2b3f8f70f845011483c5c5 Mon Sep 17 00:00:00 2001 From: Anton Kling Date: Wed, 1 May 2024 18:38:22 +0200 Subject: Kernel/Keyboard: Only write to buffer after it is initialized --- kernel/drivers/keyboard.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) (limited to 'kernel/drivers') diff --git a/kernel/drivers/keyboard.c b/kernel/drivers/keyboard.c index a120788..fb85e39 100644 --- a/kernel/drivers/keyboard.c +++ b/kernel/drivers/keyboard.c @@ -86,7 +86,7 @@ u8 capital_ascii_table[] = { ' ', // ; }; -vfs_inode_t *kb_inode; +vfs_inode_t *kb_inode = NULL; u8 keyboard_to_ascii(u16 key, u8 capital) { if ((key & 0xFF) > sizeof(ascii_table)) { @@ -112,9 +112,12 @@ struct KEY_EVENT { extern process_t *ready_queue; void int_keyboard(reg_t *frame) { - outb(0x20, 0x20); u16 c; c = inb(PS2_REG_DATA); + outb(0x20, 0x20); + if (!kb_inode) { + return; + } int released = 0; if (c & 0x80) { switch ((c & ~(0x80)) & 0xFF) { -- cgit v1.2.3