From f9686bc68696ad1e99a0587f15d05300d003d990 Mon Sep 17 00:00:00 2001 From: Robin Burchell Date: Mon, 9 Apr 2018 15:41:02 +0200 Subject: QQuickItem: Guard against null deref in transformations Change-Id: Ieb14322c104d816842e04e521b556bfc11855f1c Task-number: QTBUG-67024 Reviewed-by: Robin Burchell Reviewed-by: Michael Brasser --- src/quick/items/qquickitem.cpp | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'src/quick') diff --git a/src/quick/items/qquickitem.cpp b/src/quick/items/qquickitem.cpp index 3a0aea517c..3d650bf223 100644 --- a/src/quick/items/qquickitem.cpp +++ b/src/quick/items/qquickitem.cpp @@ -3134,6 +3134,9 @@ void QQuickItemPrivate::itemToParentTransform(QTransform &t) const */ QTransform QQuickItemPrivate::windowToGlobalTransform() const { + if (Q_UNLIKELY(window == nullptr)) + return QTransform(); + QPoint quickWidgetOffset; QWindow *renderWindow = QQuickRenderControl::renderWindowFor(window, &quickWidgetOffset); QPointF pos = (renderWindow ? renderWindow : window)->mapToGlobal(quickWidgetOffset); @@ -3145,6 +3148,9 @@ QTransform QQuickItemPrivate::windowToGlobalTransform() const */ QTransform QQuickItemPrivate::globalToWindowTransform() const { + if (Q_UNLIKELY(window == nullptr)) + return QTransform(); + QPoint quickWidgetOffset; QWindow *renderWindow = QQuickRenderControl::renderWindowFor(window, &quickWidgetOffset); QPointF pos = (renderWindow ? renderWindow : window)->mapToGlobal(quickWidgetOffset); -- cgit v1.2.3