From 25eb903a8f960c612447f42fd6ceec0aad12c206 Mon Sep 17 00:00:00 2001 From: Ali Mohammad Pur Date: Wed, 10 Jan 2024 20:47:59 +0330 Subject: [PATCH] LibProtocol: Don't assume request creation will succeed across IPC Allow it to fail, and return null if it does. Fixes frequent crashes in unfavourable network conditions. --- Userland/Libraries/LibProtocol/RequestClient.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/Userland/Libraries/LibProtocol/RequestClient.cpp b/Userland/Libraries/LibProtocol/RequestClient.cpp index de1d603c7e..01206348bf 100644 --- a/Userland/Libraries/LibProtocol/RequestClient.cpp +++ b/Userland/Libraries/LibProtocol/RequestClient.cpp @@ -29,7 +29,10 @@ RefPtr RequestClient::start_request(ByteString const& method, URL const if (body_result.is_error()) return nullptr; - auto response = IPCProxy::start_request(method, url, headers_or_error.release_value(), body_result.release_value(), proxy_data); + auto maybe_response = IPCProxy::try_start_request(method, url, headers_or_error.release_value(), body_result.release_value(), proxy_data); + if (maybe_response.is_error()) + return nullptr; + auto response = maybe_response.release_value(); auto request_id = response.request_id(); if (request_id < 0 || !response.response_fd().has_value()) return nullptr;