From d316b798b33178203bc18bbec06b87a358a50167 Mon Sep 17 00:00:00 2001 From: Andrew den Exter <andrew.den.exter@qinetic.com.au> Date: Wed, 24 Feb 2016 11:41:36 +1000 Subject: [PATCH] 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> --- src/compositor/compositor_api/qwaylandsurface.cpp | 4 ++++ 1 file changed, 4 insertions(+) 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)) { -- GitLab