From 7b72bf29101c1a57fe4024cbde0e0c8e2e15991c Mon Sep 17 00:00:00 2001 From: Lucas CHOLLET Date: Sun, 16 Jul 2023 22:58:33 -0400 Subject: [PATCH] LibGfx: Don't assume that image decoder plugin creation succeeds An image with an incorrect header should fail at this step, so we have to handle that without crashing. --- Userland/Libraries/LibGfx/ImageFormats/ImageDecoder.cpp | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/Userland/Libraries/LibGfx/ImageFormats/ImageDecoder.cpp b/Userland/Libraries/LibGfx/ImageFormats/ImageDecoder.cpp index d05a3db4c8..995937f28b 100644 --- a/Userland/Libraries/LibGfx/ImageFormats/ImageDecoder.cpp +++ b/Userland/Libraries/LibGfx/ImageFormats/ImageDecoder.cpp @@ -48,9 +48,11 @@ static OwnPtr probe_and_sniff_for_appropriate_plugin(Readonl auto sniff_result = plugin.sniff(bytes); if (!sniff_result) continue; - auto plugin_decoder = plugin.create(bytes).release_value_but_fixme_should_propagate_errors(); - if (!plugin_decoder->initialize().is_error()) - return plugin_decoder; + auto plugin_decoder = plugin.create(bytes); + if (!plugin_decoder.is_error()) { + if (!plugin_decoder.value()->initialize().is_error()) + return plugin_decoder.release_value(); + } } return {}; }