Bladeren bron

LibGfx/TIFF: Reject images that declare a sample with abnormal bit depth

Anything with a bit depth of zero or greater than 32 is outside our
working range, so let's reject them.
Lucas CHOLLET 1 jaar geleden
bovenliggende
commit
4e09ee1f2f
1 gewijzigde bestanden met toevoegingen van 3 en 0 verwijderingen
  1. 3 0
      Userland/Libraries/LibGfx/ImageFormats/TIFFLoader.cpp

+ 3 - 0
Userland/Libraries/LibGfx/ImageFormats/TIFFLoader.cpp

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