diff --git a/Userland/Libraries/LibPDF/Renderer.cpp b/Userland/Libraries/LibPDF/Renderer.cpp index 89d6e81af9..f42d09f204 100644 --- a/Userland/Libraries/LibPDF/Renderer.cpp +++ b/Userland/Libraries/LibPDF/Renderer.cpp @@ -766,17 +766,19 @@ PDFErrorOr Renderer::show_text(DeprecatedString const& string) PDFErrorOr> Renderer::load_image(NonnullRefPtr image) { auto image_dict = image->dict(); - auto filter_object = TRY(image_dict->get_object(m_document, CommonNames::Filter)); auto width = image_dict->get_value(CommonNames::Width).get(); auto height = image_dict->get_value(CommonNames::Height).get(); - auto is_filter = [&](DeprecatedFlyString const& name) { + auto is_filter = [&](DeprecatedFlyString const& name) -> PDFErrorOr { + if (!image_dict->contains(CommonNames::Filter)) + return false; + auto filter_object = TRY(image_dict->get_object(m_document, CommonNames::Filter)); if (filter_object->is()) return filter_object->cast()->name() == name; auto filters = filter_object->cast(); return MUST(filters->get_name_at(m_document, 0))->name() == name; }; - if (is_filter(CommonNames::JPXDecode)) { + if (TRY(is_filter(CommonNames::JPXDecode))) { return Error(Error::Type::RenderingUnsupported, "JPXDecode filter"); } if (image_dict->contains(CommonNames::ImageMask)) { @@ -807,7 +809,7 @@ PDFErrorOr> Renderer::load_image(NonnullRefPtr to avoid seialisation/deserialisation here return TRY(Gfx::Bitmap::create_from_serialized_bytes(image->bytes())); }