summaryrefslogtreecommitdiffstats
path: root/src/platformsupport/input
diff options
context:
space:
mode:
authorVolker Hilsheimer <volker.hilsheimer@qt.io>2021-12-07 14:36:33 +0100
committerVolker Hilsheimer <volker.hilsheimer@qt.io>2021-12-08 00:40:21 +0100
commit30b0b72453239666952ab516c618c19f0ca0aca6 (patch)
treeb8829678fa06adc35a806115b65489c08b475067 /src/platformsupport/input
parente65c29fffc2232ff038c5e79c9b15e16adaaed81 (diff)
Test for nullptr before dereferencing the screen
Touch event processing might still be ongoing even after the screen has been disconnected. If that screen was also the primary screen, we would dereference nullptr. Check for nullptr to avoid potential crashes during shutdown. Fixes: QTBUG-95192 Pick-to: 6.2 5.15 Change-Id: I49ccd30c4126fe12cf5bb675e532e6e59b40b9c1 Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
Diffstat (limited to 'src/platformsupport/input')
-rw-r--r--src/platformsupport/input/evdevtouch/qevdevtouchhandler.cpp2
-rw-r--r--src/platformsupport/input/libinput/qlibinputtouch.cpp2
2 files changed, 2 insertions, 2 deletions
diff --git a/src/platformsupport/input/evdevtouch/qevdevtouchhandler.cpp b/src/platformsupport/input/evdevtouch/qevdevtouchhandler.cpp
index cacabd1dfd..95265b3378 100644
--- a/src/platformsupport/input/evdevtouch/qevdevtouchhandler.cpp
+++ b/src/platformsupport/input/evdevtouch/qevdevtouchhandler.cpp
@@ -757,7 +757,7 @@ QRect QEvdevTouchScreenData::screenGeometry() const
if (m_screen)
screen = m_screen;
}
- return QHighDpi::toNativePixels(screen->geometry(), screen);
+ return screen ? QHighDpi::toNativePixels(screen->geometry(), screen) : QRect();
}
void QEvdevTouchScreenData::reportPoints()
diff --git a/src/platformsupport/input/libinput/qlibinputtouch.cpp b/src/platformsupport/input/libinput/qlibinputtouch.cpp
index ed531f5773..ccaf01d658 100644
--- a/src/platformsupport/input/libinput/qlibinputtouch.cpp
+++ b/src/platformsupport/input/libinput/qlibinputtouch.cpp
@@ -84,7 +84,7 @@ QRect QLibInputTouch::screenGeometry(DeviceState *state)
if (m_screen)
screen = m_screen;
}
- return QHighDpi::toNativePixels(screen->geometry(), screen);
+ return screen ? QHighDpi::toNativePixels(screen->geometry(), screen) : QRect();
}
QPointF QLibInputTouch::getPos(libinput_event_touch *e)