diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/3rdparty/libtiff/libtiff/tif_lzw.c | 1 | ||||
-rw-r--r-- | src/plugins/imageformats/tiff/qtiffhandler.cpp | 2 |
2 files changed, 3 insertions, 0 deletions
diff --git a/src/3rdparty/libtiff/libtiff/tif_lzw.c b/src/3rdparty/libtiff/libtiff/tif_lzw.c index 096824d..8c3205f 100644 --- a/src/3rdparty/libtiff/libtiff/tif_lzw.c +++ b/src/3rdparty/libtiff/libtiff/tif_lzw.c @@ -39,6 +39,7 @@ #include <stdbool.h> #include <stdio.h> +#include <stdlib.h> /* Select the plausible largest natural integer type for the architecture */ #define SIZEOF_WORDTYPE SIZEOF_SIZE_T diff --git a/src/plugins/imageformats/tiff/qtiffhandler.cpp b/src/plugins/imageformats/tiff/qtiffhandler.cpp index 1386750..ac8956c 100644 --- a/src/plugins/imageformats/tiff/qtiffhandler.cpp +++ b/src/plugins/imageformats/tiff/qtiffhandler.cpp @@ -361,6 +361,8 @@ bool QTiffHandler::read(QImage *image) } TIFF *const tiff = d->tiff; + if (TIFFIsTiled(tiff) && TIFFTileSize64(tiff) > uint64_t(image->sizeInBytes())) // Corrupt image + return false; const quint32 width = d->size.width(); const quint32 height = d->size.height(); |