[mutter] wayland: do not crash if the surface is gone



commit 443d579d402d82ae6b178036266f46576f9e2fbc
Author: Olivier Fourdan <ofourdan redhat com>
Date:   Tue Sep 8 11:52:10 2015 +0200

    wayland: do not crash if the surface is gone
    
    If a queued event is being processed after the surface is
    destroyed, trying to access the window associated with the surface
    will lead to a segmentation fault.
    
    This patch avoids the crash by first checking if the surface is not null.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=754715

 src/compositor/meta-surface-actor-wayland.c |    6 +++++-
 1 files changed, 5 insertions(+), 1 deletions(-)
---
diff --git a/src/compositor/meta-surface-actor-wayland.c b/src/compositor/meta-surface-actor-wayland.c
index d89f6dc..4e3ae8d 100644
--- a/src/compositor/meta-surface-actor-wayland.c
+++ b/src/compositor/meta-surface-actor-wayland.c
@@ -293,8 +293,12 @@ static MetaWindow *
 meta_surface_actor_wayland_get_window (MetaSurfaceActor *actor)
 {
   MetaSurfaceActorWaylandPrivate *priv = meta_surface_actor_wayland_get_instance_private 
(META_SURFACE_ACTOR_WAYLAND (actor));
+  MetaWaylandSurface *surface = priv->surface;
 
-  return priv->surface->window;
+  if (!surface)
+    return NULL;
+
+  return surface->window;
 }
 
 static void


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]