diff --git a/src/imageformats/chunks.cpp b/src/imageformats/chunks.cpp index 13a3cc1..200c00b 100644 --- a/src/imageformats/chunks.cpp +++ b/src/imageformats/chunks.cpp @@ -545,8 +545,12 @@ bool CMAPChunk::innerReadStructure(QIODevice *d) QList CMAPChunk::innerPalette() const { QList l; - auto &&d = data(); - for (qint32 i = 0, n = count(); i < n; ++i) { + const QByteArray &d = data(); + const qint32 n = count(); + if (n * 3 > d.size()) { + return {}; + } + for (qint32 i = 0; i < n; ++i) { auto i3 = i * 3; l << qRgb(d.at(i3), d.at(i3 + 1), d.at(i3 + 2)); }