From d8fb3290d5dc4fb60b182666a530629666edf1fa Mon Sep 17 00:00:00 2001 From: Linus Groh Date: Wed, 26 Jan 2022 19:22:28 +0000 Subject: [PATCH] Kernel/Storage: Add device null check in AHCIPort::handle_interrupt() Before attempting to remove the device while handling an AHCI port interrupt, check if m_connected_device is even non-null. This happened during my bare metal run and caused a kernel panic. --- Kernel/Storage/ATA/AHCIPort.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Kernel/Storage/ATA/AHCIPort.cpp b/Kernel/Storage/ATA/AHCIPort.cpp index a950b5b819..381a260527 100644 --- a/Kernel/Storage/ATA/AHCIPort.cpp +++ b/Kernel/Storage/ATA/AHCIPort.cpp @@ -73,7 +73,7 @@ void AHCIPort::handle_interrupt() } if (m_interrupt_status.is_set(AHCI::PortInterruptFlag::PRC) && m_interrupt_status.is_set(AHCI::PortInterruptFlag::PC)) { clear_sata_error_register(); - if ((m_port_registers.ssts & 0xf) != 3) { + if ((m_port_registers.ssts & 0xf) != 3 && m_connected_device) { m_connected_device->prepare_for_unplug(); StorageManagement::the().remove_device(*m_connected_device); g_io_work->queue([this]() {