mirror of
https://github.com/RGBCube/serenity
synced 2025-07-26 08:47:34 +00:00
LibGfx/TIFF: Prevent the CCITT decoder to run on non bilevel image
This commit is contained in:
parent
0ef449a588
commit
f6b86096a5
1 changed files with 5 additions and 1 deletions
|
@ -270,8 +270,12 @@ private:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case Compression::CCITT: {
|
case Compression::CCITT: {
|
||||||
|
// Section 8: Baseline Field Reference Guide
|
||||||
|
// BitsPerSample must be 1, since this type of compression is defined only for bilevel images.
|
||||||
if (m_metadata.bits_per_sample()->size() > 1)
|
if (m_metadata.bits_per_sample()->size() > 1)
|
||||||
return Error::from_string_literal("TIFFImageDecoderPlugin: CCITT image with BitsPerSample greater than one, aborting...");
|
return Error::from_string_literal("TIFFImageDecoderPlugin: CCITT image with BitsPerSample greater than one");
|
||||||
|
if (m_metadata.photometric_interpretation() != PhotometricInterpretation::WhiteIsZero && m_metadata.photometric_interpretation() != PhotometricInterpretation::BlackIsZero)
|
||||||
|
return Error::from_string_literal("TIFFImageDecoderPlugin: CCITT compression is used on a non bilevel image");
|
||||||
|
|
||||||
ByteBuffer decoded_bytes {};
|
ByteBuffer decoded_bytes {};
|
||||||
auto decode_ccitt_1D_strip = [&](u32 num_bytes) -> ErrorOr<ReadonlyBytes> {
|
auto decode_ccitt_1D_strip = [&](u32 num_bytes) -> ErrorOr<ReadonlyBytes> {
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue