From 3e9b1bac9502ca003c962388c84bcb32f75802f6 Mon Sep 17 00:00:00 2001 From: George Kiagiadakis Date: Wed, 11 Jun 2014 10:44:55 +0200 Subject: [PATCH] compositor: unmap subsurface views before destroying the subsurfaces to avoid recursing into weston_compositor_build_view_list() This fixes a crash due to weston_compositor_build_view_list() being called recursively and corrupting the lists it works on. --- src/compositor.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/compositor.c b/src/compositor.c index 2c33297..ef90ee5 100644 --- a/src/compositor.c +++ b/src/compositor.c @@ -2012,8 +2012,10 @@ surface_free_unused_subsurface_views(struct weston_surface *surface) if (sub->surface == surface) continue; - wl_list_for_each_safe(view, nv, &sub->unused_views, surface_link) + wl_list_for_each_safe(view, nv, &sub->unused_views, surface_link) { + weston_view_unmap (view); weston_view_destroy(view); + } surface_free_unused_subsurface_views(sub->surface); } -- 2.0.0.rc4