1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-26 05:57:44 +00:00

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."
This commit is contained in:
Nico Weber 2024-03-07 20:41:32 -05:00 committed by Tim Flynn
parent f592a2ac72
commit 9cd0c5658e

View file

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