diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/gui/painting/qcolorspace.cpp | 3 | ||||
-rw-r--r-- | src/gui/painting/qicc.cpp | 5 |
2 files changed, 8 insertions, 0 deletions
diff --git a/src/gui/painting/qcolorspace.cpp b/src/gui/painting/qcolorspace.cpp index 930e5aec87..43efdc1166 100644 --- a/src/gui/painting/qcolorspace.cpp +++ b/src/gui/painting/qcolorspace.cpp @@ -666,6 +666,9 @@ QByteArray QColorSpace::iccProfile() const If the ICC profile is not supported an invalid QColorSpace is returned where you can still read the original ICC profile using iccProfile(). + \note If the QByteArray data is created from external sources it should be + at least 4 byte aligned. + \sa iccProfile() */ QColorSpace QColorSpace::fromIccProfile(const QByteArray &iccProfile) diff --git a/src/gui/painting/qicc.cpp b/src/gui/painting/qicc.cpp index ca06e8763f..32d67ea76a 100644 --- a/src/gui/painting/qicc.cpp +++ b/src/gui/painting/qicc.cpp @@ -614,6 +614,11 @@ bool parseDesc(const QByteArray &data, const TagEntry &tagEntry, QString &descNa bool fromIccProfile(const QByteArray &data, QColorSpace *colorSpace) { + Q_ASSERT((reinterpret_cast<qintptr>(data.constData()) & 0x3) == 0); + if (reinterpret_cast<qintptr>(data.constData()) & 0x3) { + qCWarning(lcIcc) << "fromIccProfile: Unaligned profile data"; + return false; + } if (data.size() < qsizetype(sizeof(ICCProfileHeader))) { qCWarning(lcIcc) << "fromIccProfile: failed size sanity 1"; return false; |