summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAllan Sandfeld Jensen <allan.jensen@qt.io>2020-06-22 15:10:59 +0200
committerAllan Sandfeld Jensen <allan.jensen@qt.io>2020-06-22 19:56:28 +0200
commit7479f2212e9280f887c11b41cb0907f1db3e0233 (patch)
treea41325348abc4b04ce32b92590040ff6424ffe09
parentdd8505ae9c64ba04ecebd62a91ad098c01fb2f40 (diff)
downloadqtsvg-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.cpp10
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());