summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorQt Forward Merge Bot <qt_forward_merge_bot@qt-project.org>2018-09-08 03:01:45 +0200
committerQt Forward Merge Bot <qt_forward_merge_bot@qt-project.org>2018-09-08 03:01:45 +0200
commit7f9d4d55ba09036d2cf790778fde8c92464d00e7 (patch)
treef56181b6645d9f9b32ad1a03fafdd6dfe1012164
parent0b4963c26255a5e6c775baf3b6a2adfae0a6d8e4 (diff)
parentdd38f75d8614e5d4e1906594e1d83f284af42457 (diff)
Merge remote-tracking branch 'origin/5.12' into dev
-rw-r--r--src/plugins/imageformats/tga/qtgafile.cpp8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/plugins/imageformats/tga/qtgafile.cpp b/src/plugins/imageformats/tga/qtgafile.cpp
index 97510df..5d086c6 100644
--- a/src/plugins/imageformats/tga/qtgafile.cpp
+++ b/src/plugins/imageformats/tga/qtgafile.cpp
@@ -163,6 +163,12 @@ QTgaFile::QTgaFile(QIODevice *device)
if (!validDepth)
{
mErrorMessage = tr("Image depth not valid");
+ return;
+ }
+ if (quint64(width()) * quint64(height()) > (8192 * 8192))
+ {
+ mErrorMessage = tr("Image size exceeds limit");
+ return;
}
int curPos = mDevice->pos();
int fileBytes = mDevice->size();
@@ -233,6 +239,8 @@ QImage QTgaFile::readImage()
unsigned char yCorner = desc & 0x20; // 0 = lower, 1 = upper
QImage im(imageWidth, imageHeight, QImage::Format_ARGB32);
+ if (im.isNull())
+ return QImage();
TgaReader *reader = 0;
if (bitsPerPixel == 16)
reader = new Tga16Reader();