diff options
author | Andrew den Exter <andrew.den.exter@qinetic.com.au> | 2016-02-24 11:41:36 +1000 |
---|---|---|
committer | Andrew den Exter <andrew.den.exter@qinetic.com.au> | 2016-02-26 07:38:49 +0000 |
commit | d316b798b33178203bc18bbec06b87a358a50167 (patch) | |
tree | d5cdb7af7d774ac02c475396d1b6f767d53cf591 | |
parent | 6321921c781c711e8fdc2dedb212b15ff8125084 (diff) | |
download | qtwayland-d316b798b33178203bc18bbec06b87a358a50167.tar.gz |
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>
-rw-r--r-- | src/compositor/compositor_api/qwaylandsurface.cpp | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/src/compositor/compositor_api/qwaylandsurface.cpp b/src/compositor/compositor_api/qwaylandsurface.cpp index a8dc41fd..f1615521 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)) { |