From 3c36bf348693443d47189ed45f2b3b74c0978803 Mon Sep 17 00:00:00 2001 From: Ander Conselvan de Oliveira Date: Fri, 5 Jul 2013 16:05:26 +0300 Subject: [PATCH] compositor: Remove a plane from the compositor list when releasing it Weston would crash when hot plugging/unplugging outputs using the DRM backend due to a corrupted plane list. https://bugs.freedesktop.org/show_bug.cgi?id=66530 https://bugs.freedesktop.org/show_bug.cgi?id=66529 --- src/compositor.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/compositor.c b/src/compositor.c index 8e74dbc..5196b17 100644 --- a/src/compositor.c +++ b/src/compositor.c @@ -2498,6 +2498,10 @@ weston_plane_init(struct weston_plane *plane, int32_t x, int32_t y) pixman_region32_init(&plane->clip); plane->x = x; plane->y = y; + + /* Init the link so that the call to wl_list_remove() when releasing + * the plane without ever stacking doesn't lead to a crash */ + wl_list_init(&plane->link); } WL_EXPORT void @@ -2505,6 +2509,8 @@ weston_plane_release(struct weston_plane *plane) { pixman_region32_fini(&plane->damage); pixman_region32_fini(&plane->clip); + + wl_list_remove(&plane->link); } WL_EXPORT void -- 2.7.4