Forráskód Böngészése

LibGfx/JBIG2: Reject files with delayed height information for now

7.4.8.2 Page bitmap height:
"In some cases, this value may not be known at the time that the page
information segment is written. In this case, this field must contain
0xFFFFFFFF, and the actual page height may be communicated later, once
it is known."
Nico Weber 1 éve
szülő
commit
9cd0c5658e

+ 5 - 0
Userland/Libraries/LibGfx/ImageFormats/JBIG2Loader.cpp

@@ -297,6 +297,11 @@ static ErrorOr<void> scan_for_page_size(JBIG2LoadingContext& context)
         if (segment.header.type != SegmentType::PageInformation || segment.header.page_association != 1)
             continue;
         auto page_information = TRY(decode_page_information_segment(segment.data));
+
+        // FIXME: We're supposed to compute this from the striping information if it's not set.
+        if (page_information.bitmap_height == 0xffff'ffff)
+            return Error::from_string_literal("JBIG2ImageDecoderPlugin: Cannot handle unknown page height yet");
+
         context.size = { page_information.bitmap_width, page_information.bitmap_height };
         return {};
     }