浏览代码

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 年之前
父节点
当前提交
9cd0c5658e
共有 1 个文件被更改,包括 5 次插入0 次删除
  1. 5 0
      Userland/Libraries/LibGfx/ImageFormats/JBIG2Loader.cpp

+ 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 {};
     }