From b5865df798323a63d8a89b8b50116888b930f3f0 Mon Sep 17 00:00:00 2001 From: Allan Sandfeld Jensen Date: Mon, 22 Jun 2020 15:10:59 +0200 Subject: 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. Pick-to: 5.15 5.12 Change-Id: I0415462712792cb6a00eadd510b1688e859c419c Reviewed-by: Volker Hilsheimer --- src/svg/qsvgtinydocument.cpp | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) (limited to 'src') diff --git a/src/svg/qsvgtinydocument.cpp b/src/svg/qsvgtinydocument.cpp index b4b9526..9e5da82 100644 --- a/src/svg/qsvgtinydocument.cpp +++ b/src/svg/qsvgtinydocument.cpp @@ -408,11 +408,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()); @@ -422,10 +422,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()) { #if (QT_VERSION >= QT_VERSION_CHECK(5, 15, 0)) if (m_implicitViewBox || !preserveAspectRatio()) { // Code path used when no view box is set, or IgnoreAspectRatio requested -- cgit v1.2.1