summaryrefslogtreecommitdiff
path: root/Userland
diff options
context:
space:
mode:
authorLinus Groh <mail@linusgroh.de>2023-02-18 16:20:27 +0100
committerLinus Groh <mail@linusgroh.de>2023-02-19 00:37:51 +0100
commit10575fea9fbef2a9c7d65f2ba26cae2b96da5501 (patch)
tree8c9ca9c22a5dfc5456d2adc89ab3d4437ee39645 /Userland
parent533f2a4980c294af8f1dfe84527a269fb6852412 (diff)
downloadserenity-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.cpp6
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;