diff options
author | Allan Sandfeld Jensen <allan.jensen@qt.io> | 2020-06-22 15:10:59 +0200 |
---|---|---|
committer | Allan Sandfeld Jensen <allan.jensen@qt.io> | 2020-06-22 19:56:28 +0200 |
commit | 7479f2212e9280f887c11b41cb0907f1db3e0233 (patch) | |
tree | a41325348abc4b04ce32b92590040ff6424ffe09 | |
parent | dd8505ae9c64ba04ecebd62a91ad098c01fb2f40 (diff) | |
download | qtsvg-7479f2212e9280f887c11b41cb0907f1db3e0233.tar.gz |
Use QRect::isEmpty instead of QRect::isNull
Otherwise we can end up processing empty rects, and get divisions by
zero.
Fixes oss-fuzz issue 23633.
Change-Id: I0415462712792cb6a00eadd510b1688e859c419c
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
(cherry picked from commit b5865df798323a63d8a89b8b50116888b930f3f0)
-rw-r--r-- | src/svg/qsvgtinydocument.cpp | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/src/svg/qsvgtinydocument.cpp b/src/svg/qsvgtinydocument.cpp index da464cc..6889f7b 100644 --- a/src/svg/qsvgtinydocument.cpp +++ b/src/svg/qsvgtinydocument.cpp @@ -402,11 +402,11 @@ void QSvgTinyDocument::draw(QPainter *p, QSvgExtraStates &) void QSvgTinyDocument::mapSourceToTarget(QPainter *p, const QRectF &targetRect, const QRectF &sourceRect) { QRectF target = targetRect; - if (target.isNull()) { + if (target.isEmpty()) { QPaintDevice *dev = p->device(); QRectF deviceRect(0, 0, dev->width(), dev->height()); - if (deviceRect.isNull()) { - if (sourceRect.isNull()) + if (deviceRect.isEmpty()) { + if (sourceRect.isEmpty()) target = QRectF(QPointF(0, 0), size()); else target = QRectF(QPointF(0, 0), sourceRect.size()); @@ -416,10 +416,10 @@ void QSvgTinyDocument::mapSourceToTarget(QPainter *p, const QRectF &targetRect, } QRectF source = sourceRect; - if (source.isNull()) + if (source.isEmpty()) source = viewBox(); - if (source != target && !source.isNull()) { + if (source != target && !source.isEmpty()) { QTransform transform; transform.scale(target.width() / source.width(), target.height() / source.height()); |