diff options
author | Johan Klokkhammer Helsing <johan.helsing@qt.io> | 2016-04-18 16:00:10 +0200 |
---|---|---|
committer | Johan Helsing <johan.helsing@qt.io> | 2016-04-18 14:43:15 +0000 |
commit | 14f222a77ea665e802acbd9afd1bc59eeee7865a (patch) | |
tree | bfd70c0fff100f627f9f87a8f71ecdf8b69f9a1e /src/compositor/compositor_api/qwaylandoutput.cpp | |
parent | fb8c3ac47bcf6a192930c0758195d836017ead78 (diff) |
Don't send wl_output::enter if the client didn't bind to wl_output
If a client didn't bind to the wl_output global,
QWaylandOutput::surfaceEnter would try to send an enter event with null
as the client resource, resulting in a crash.
Change-Id: Ibdfa27161e6e1deb81a94ebd1b6ddf11b5da8b7b
Reviewed-by: Giulio Camuffo <giulio.camuffo@kdab.com>
Reviewed-by: Erik Larsson <erik@ortogonal.com>
Diffstat (limited to 'src/compositor/compositor_api/qwaylandoutput.cpp')
-rw-r--r-- | src/compositor/compositor_api/qwaylandoutput.cpp | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/src/compositor/compositor_api/qwaylandoutput.cpp b/src/compositor/compositor_api/qwaylandoutput.cpp index c8c5878bf..d97ea04ef 100644 --- a/src/compositor/compositor_api/qwaylandoutput.cpp +++ b/src/compositor/compositor_api/qwaylandoutput.cpp @@ -859,7 +859,10 @@ void QWaylandOutput::surfaceEnter(QWaylandSurface *surface) { if (!surface) return; - QWaylandSurfacePrivate::get(surface)->send_enter(resourceForClient(surface->client())); + + auto clientResource = resourceForClient(surface->client()); + if (clientResource) + QWaylandSurfacePrivate::get(surface)->send_enter(clientResource); } /*! |