Anything with a bit depth of zero or greater than 32 is outside our working range, so let's reject them.
@@ -47,6 +47,9 @@ public:
if (m_metadata.strip_offsets()->size() != m_metadata.strip_byte_counts()->size())
return Error::from_string_literal("TIFFImageDecoderPlugin: StripsOffset and StripByteCount have different sizes");
+ if (any_of(*m_metadata.bits_per_sample(), [](auto bit_depth) { return bit_depth == 0 || bit_depth > 32; }))
+ return Error::from_string_literal("TIFFImageDecoderPlugin: Invalid value in BitsPerSample");
+
return {};
}