From 2dc78efbe4366b243c3d617850dcfebb6ec86cef Mon Sep 17 00:00:00 2001 From: Giuseppe D'Angelo Date: Wed, 6 Mar 2024 12:47:25 +0100 Subject: [PATCH] QIcc: re-add an extra check in parseLutData Change-Id: Ifce2dc720e4e4cae54a00147049edcf369ae8190 Done-by: Allan Sandfeld Jensen Reviewed-by: Allan Sandfeld Jensen --- src/gui/painting/qicc.cpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/gui/painting/qicc.cpp b/src/gui/painting/qicc.cpp index 77f1a7aa08..dcebdfd1b0 100644 --- a/src/gui/painting/qicc.cpp +++ b/src/gui/painting/qicc.cpp @@ -672,6 +672,10 @@ static bool parseLutData(const QByteArray &data, const TagEntry &tagEntry, QColo qCWarning(lcIcc) << "Undersized lut8/lut16 tag"; return false; } + if (qsizetype(tagEntry.size) > data.size()) { + qCWarning(lcIcc) << "Truncated lut8/lut16 tag"; + return false; + } using S = std::conditional_t, uint8_t, uint16_t>; const T lut = qFromUnaligned(data.constData() + tagEntry.offset); int inputTableEntries, outputTableEntries, precision;