From 8f3022b5c17bfd1f796de5e7a40adada6aaea429 Mon Sep 17 00:00:00 2001 From: Andreas Kling Date: Sat, 18 May 2019 00:22:08 +0200 Subject: [PATCH] NetworkTask: Don't crash on startup if there's no E1000 NIC present. --- Kernel/Net/NetworkTask.cpp | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/Kernel/Net/NetworkTask.cpp b/Kernel/Net/NetworkTask.cpp index bd8406376d..55e1357e55 100644 --- a/Kernel/Net/NetworkTask.cpp +++ b/Kernel/Net/NetworkTask.cpp @@ -54,10 +54,12 @@ void NetworkTask_main() { LoopbackAdapter::the(); - auto* adapter_ptr = E1000NetworkAdapter::the(); - ASSERT(adapter_ptr); - auto& adapter = *adapter_ptr; - adapter.set_ipv4_address(IPv4Address(192, 168, 5, 2)); + auto* adapter = E1000NetworkAdapter::the(); + if (!adapter) + dbgprintf("E1000 network card not found!\n"); + + if (adapter) + adapter->set_ipv4_address(IPv4Address(192, 168, 5, 2)); auto dequeue_packet = [&] () -> ByteBuffer { auto packet = LoopbackAdapter::the().dequeue_packet(); @@ -65,8 +67,8 @@ void NetworkTask_main() dbgprintf("Receive loopback packet (%d bytes)\n", packet.size()); return packet; } - if (adapter.has_queued_packets()) - return adapter.dequeue_packet(); + if (adapter && adapter->has_queued_packets()) + return adapter->dequeue_packet(); return { }; };