summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorAndrew den Exter <andrew.den.exter@qinetic.com.au>2016-02-24 11:41:36 +1000
committerAndrew den Exter <andrew.den.exter@qinetic.com.au>2016-02-26 07:38:49 +0000
commitd316b798b33178203bc18bbec06b87a358a50167 (patch)
treed5cdb7af7d774ac02c475396d1b6f767d53cf591 /src
parent6321921c781c711e8fdc2dedb212b15ff8125084 (diff)
Fix crash when pinging a surface with an invalid resource.
Check the surface hasn't been deleted before initiating the ping so that an invalid resource isn't dereferenced when printing a warning after the operation inevitably fails. Change-Id: I18c82de280d5a7a5339e3179c2bba49800626bb6 Reviewed-by: Johan Helsing <johan.helsing@theqtcompany.com> Reviewed-by: Giulio Camuffo <giulio.camuffo@kdab.com> Reviewed-by: Pier Luigi Fiorini <pierluigi.fiorini@gmail.com>
Diffstat (limited to 'src')
-rw-r--r--src/compositor/compositor_api/qwaylandsurface.cpp4
1 files changed, 4 insertions, 0 deletions
diff --git a/src/compositor/compositor_api/qwaylandsurface.cpp b/src/compositor/compositor_api/qwaylandsurface.cpp
index a8dc41fd5..f1615521e 100644
--- a/src/compositor/compositor_api/qwaylandsurface.cpp
+++ b/src/compositor/compositor_api/qwaylandsurface.cpp
@@ -361,6 +361,10 @@ bool QWaylandSurface::sendInterfaceOp(QWaylandSurfaceOp &op)
void QWaylandSurface::ping()
{
Q_D(QWaylandSurface);
+
+ if (d->isDestroyed())
+ return;
+
uint32_t serial = wl_display_next_serial(compositor()->waylandDisplay());
QWaylandSurfacePingOp op(serial);
if (!sendInterfaceOp(op)) {