From 58bdca96cd4c878284ee56136d7c02110dadd498 Mon Sep 17 00:00:00 2001 From: Lucas CHOLLET Date: Tue, 9 Jan 2024 19:03:09 -0500 Subject: [PATCH] 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. --- Userland/Libraries/LibGfx/ImageFormats/TIFFLoader.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/Userland/Libraries/LibGfx/ImageFormats/TIFFLoader.cpp b/Userland/Libraries/LibGfx/ImageFormats/TIFFLoader.cpp index 606bb375ac..90b0e3ecf2 100644 --- a/Userland/Libraries/LibGfx/ImageFormats/TIFFLoader.cpp +++ b/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();