From 342c707be31484ac4c6345cd38b5f576dfb66b88 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Thu, 20 Jul 2023 08:35:38 +0200 Subject: [PATCH] Kernel: Don't use framebuffer if flag is not set According to multiboot spec if flag for framebuffer isn't set then corresponding fields are invalid. In reality they're set to 0 but let's be defensive. --- Kernel/Arch/init.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Kernel/Arch/init.cpp b/Kernel/Arch/init.cpp index 70a8926025..c1efed6860 100644 --- a/Kernel/Arch/init.cpp +++ b/Kernel/Arch/init.cpp @@ -254,7 +254,7 @@ extern "C" [[noreturn]] UNMAP_AFTER_INIT void init([[maybe_unused]] BootInfo con // If the bootloader didn't provide a framebuffer, then set up an initial text console. // We do so we can see the output on the screen as soon as possible. if (!kernel_command_line().is_early_boot_console_disabled()) { - if (!multiboot_framebuffer_addr.is_null() && multiboot_framebuffer_type == MULTIBOOT_FRAMEBUFFER_TYPE_RGB) { + if ((multiboot_flags & MULTIBOOT_INFO_FRAMEBUFFER_INFO) && !multiboot_framebuffer_addr.is_null() && multiboot_framebuffer_type == MULTIBOOT_FRAMEBUFFER_TYPE_RGB) { g_boot_console = &try_make_lock_ref_counted(multiboot_framebuffer_addr, multiboot_framebuffer_width, multiboot_framebuffer_height, multiboot_framebuffer_pitch).value().leak_ref(); } else { g_boot_console = &Graphics::VGATextModeConsole::initialize().leak_ref();