summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEirik Aavitsland <eirik.aavitsland@qt.io>2022-10-07 09:34:30 +0200
committerEirik Aavitsland <eirik.aavitsland@qt.io>2022-10-07 12:07:48 +0200
commit4f83c3ebfdb2bc97162ac1065091c195b60ff5fb (patch)
tree3ebdcdf29cd0cb2dd0b51c6c6511397ed90db1f5
parentb3cbf8d925aa2648ccfe8537f29a42c716ee0bce (diff)
Reject tiled tiffs with corrupt tile size early
Work around a shortcoming in libtiff where it spends time discovering the corruption. Fixes: QTBUG-107223 Pick-to: 6.4 6.2 5.15 Change-Id: Ib5da260fe971d0f7d808f7215bf388c443318cb4 Reviewed-by: Robert Löhning <robert.loehning@qt.io>
-rw-r--r--src/plugins/imageformats/tiff/qtiffhandler.cpp2
1 files changed, 2 insertions, 0 deletions
diff --git a/src/plugins/imageformats/tiff/qtiffhandler.cpp b/src/plugins/imageformats/tiff/qtiffhandler.cpp
index c2351f7..1ee96e5 100644
--- a/src/plugins/imageformats/tiff/qtiffhandler.cpp
+++ b/src/plugins/imageformats/tiff/qtiffhandler.cpp
@@ -336,6 +336,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();