From 489d413fc7b6e401dae348625aa3f6a520aba0c5 Mon Sep 17 00:00:00 2001 From: Andreas Kling Date: Sat, 30 Jan 2021 11:55:21 +0100 Subject: [PATCH] LookupServer: Be a little more robust in case accept() fails --- Userland/Services/LookupServer/LookupServer.cpp | 8 +++++--- Userland/Services/LookupServer/LookupServer.h | 2 +- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/Userland/Services/LookupServer/LookupServer.cpp b/Userland/Services/LookupServer/LookupServer.cpp index f2b1d291286..338f76034d7 100644 --- a/Userland/Services/LookupServer/LookupServer.cpp +++ b/Userland/Services/LookupServer/LookupServer.cpp @@ -52,9 +52,11 @@ LookupServer::LookupServer() m_local_server = Core::LocalServer::construct(this); m_local_server->on_ready_to_accept = [this]() { auto socket = m_local_server->accept(); + if (!socket) + return; socket->on_ready_to_read = [this, socket]() { - service_client(socket); - RefPtr keeper = socket; + service_client(*socket); + NonnullRefPtr keeper = *socket; const_cast(*socket).on_ready_to_read = [] {}; }; }; @@ -97,7 +99,7 @@ void LookupServer::load_etc_hosts() } } -void LookupServer::service_client(RefPtr socket) +void LookupServer::service_client(NonnullRefPtr socket) { u8 client_buffer[1024]; int nrecv = socket->read(client_buffer, sizeof(client_buffer) - 1); diff --git a/Userland/Services/LookupServer/LookupServer.h b/Userland/Services/LookupServer/LookupServer.h index aba488457ba..b2ecf414cb4 100644 --- a/Userland/Services/LookupServer/LookupServer.h +++ b/Userland/Services/LookupServer/LookupServer.h @@ -40,7 +40,7 @@ private: LookupServer(); void load_etc_hosts(); - void service_client(RefPtr); + void service_client(NonnullRefPtr); Vector lookup(const String& hostname, const String& nameserver, bool& did_get_response, unsigned short record_type, ShouldRandomizeCase = ShouldRandomizeCase::Yes); struct CachedLookup {