From d78777580633f5a41bb467945fbb50df7e5d674c Mon Sep 17 00:00:00 2001 From: Mandar Kulkarni Date: Fri, 24 Sep 2021 20:28:03 +0530 Subject: [PATCH] LibWeb: Skip decoding favicon.ico if downloaded data is empty Some sites don't have favicon.ico, so we may get 404 response. In such cases, ResourceLoader still calls success_callback. For favicon loading, we are not checking response headers or payload size. This will ultimately fail in Gfx::ImageDecoder::try_create(). So avoid unnecessary work by returning early, if data is empty. --- Userland/Libraries/LibWeb/Loader/FrameLoader.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Userland/Libraries/LibWeb/Loader/FrameLoader.cpp b/Userland/Libraries/LibWeb/Loader/FrameLoader.cpp index aaf33b3bac..962eb77aa8 100644 --- a/Userland/Libraries/LibWeb/Loader/FrameLoader.cpp +++ b/Userland/Libraries/LibWeb/Loader/FrameLoader.cpp @@ -172,6 +172,8 @@ bool FrameLoader::load(LoadRequest& request, Type type) favicon_url, [this, favicon_url](auto data, auto&, auto) { dbgln_if(SPAM_DEBUG, "Favicon downloaded, {} bytes from {}", data.size(), favicon_url); + if (data.is_empty()) + return; RefPtr favicon_bitmap; auto decoder = Gfx::ImageDecoder::try_create(data); if (!decoder) {