QIcc: re-add an extra check in parseLutData

Change-Id: Ifce2dc720e4e4cae54a00147049edcf369ae8190
Done-by: Allan Sandfeld Jensen
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
bb10
Giuseppe D'Angelo 2024-03-06 12:47:25 +01:00
parent 9873f4b283
commit 2dc78efbe4
1 changed files with 4 additions and 0 deletions

View File

@ -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<std::is_same_v<T, Lut8TagData>, uint8_t, uint16_t>;
const T lut = qFromUnaligned<T>(data.constData() + tagEntry.offset);
int inputTableEntries, outputTableEntries, precision;