diff options
author | Linus Groh <mail@linusgroh.de> | 2023-02-18 16:20:27 +0100 |
---|---|---|
committer | Linus Groh <mail@linusgroh.de> | 2023-02-19 00:37:51 +0100 |
commit | 10575fea9fbef2a9c7d65f2ba26cae2b96da5501 (patch) | |
tree | 8c9ca9c22a5dfc5456d2adc89ab3d4437ee39645 /Userland | |
parent | 533f2a4980c294af8f1dfe84527a269fb6852412 (diff) | |
download | serenity-10575fea9fbef2a9c7d65f2ba26cae2b96da5501.zip |
LibGfx: Fix sign-compare compile error in TGALoader
I'm not sure why this isn't caught on other people's setups or CI, but
when building on NixOS it fails with:
error: comparison of integer expressions of different signedness:
‘size_t’ {aka ‘long unsigned int’} and ‘int’ [-Werror=sign-compare]
Diffstat (limited to 'Userland')
-rw-r--r-- | Userland/Libraries/LibGfx/TGALoader.cpp | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/Userland/Libraries/LibGfx/TGALoader.cpp b/Userland/Libraries/LibGfx/TGALoader.cpp index f6928d6985..067299454a 100644 --- a/Userland/Libraries/LibGfx/TGALoader.cpp +++ b/Userland/Libraries/LibGfx/TGALoader.cpp @@ -209,7 +209,8 @@ bool TGAImageDecoderPlugin::decode_tga_header() auto bytes_remaining = reader->data().size() - reader->index(); - if (m_context->header.data_type_code == TGADataType::UncompressedRGB && bytes_remaining < (m_context->header.width * m_context->header.height * (m_context->header.bits_per_pixel / 8))) + // FIXME: Check for multiplication overflow! + if (m_context->header.data_type_code == TGADataType::UncompressedRGB && bytes_remaining < static_cast<size_t>(m_context->header.width * m_context->header.height * (m_context->header.bits_per_pixel / 8))) return false; if (m_context->header.bits_per_pixel < 8 || m_context->header.bits_per_pixel > 32) @@ -228,7 +229,8 @@ ErrorOr<bool> TGAImageDecoderPlugin::validate_before_create(ReadonlyBytes data) if (data.size() < sizeof(TGAHeader)) return false; TGAHeader const& header = *reinterpret_cast<TGAHeader const*>(data.data()); - if (header.data_type_code == TGADataType::UncompressedRGB && data.size() < (header.width * header.height * (header.bits_per_pixel / 8))) + // FIXME: Check for multiplication overflow! + if (header.data_type_code == TGADataType::UncompressedRGB && data.size() < static_cast<size_t>(header.width * header.height * (header.bits_per_pixel / 8))) return false; if (header.bits_per_pixel < 8 || header.bits_per_pixel > 32) return false; |