Parcourir la source

LibGfx/TIFF: Use a wider type for palette indices to prevent overflow

We refuse any image with a sample depth greater than 32, storing these
value as `u64` prevent any overflows. This is probably overkill as no
one in their right mind will use a 32 bits color table.
Lucas CHOLLET il y a 1 an
Parent
commit
58bdca96cd
1 fichiers modifiés avec 4 ajouts et 4 suppressions
  1. 4 4
      Userland/Libraries/LibGfx/ImageFormats/TIFFLoader.cpp

+ 4 - 4
Userland/Libraries/LibGfx/ImageFormats/TIFFLoader.cpp

@@ -182,10 +182,10 @@ private:
             // From description of PhotometricInterpretation in Section 8: Baseline Field Reference Guide
             // "In a TIFF ColorMap, all the Red values come first, followed by the Green values,
             //  then the Blue values."
-            auto const size = 1 << (*m_metadata.bits_per_sample())[0];
-            auto const red_offset = 0 * size;
-            auto const green_offset = 1 * size;
-            auto const blue_offset = 2 * size;
+            u64 const size = 1ul << (*m_metadata.bits_per_sample())[0];
+            u64 const red_offset = 0 * size;
+            u64 const green_offset = 1 * size;
+            u64 const blue_offset = 2 * size;
 
             auto const color_map = *m_metadata.color_map();