From: Ander Conselvan de Oliveira <[email protected]>

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
-- 
1.7.9.5

_______________________________________________
wayland-devel mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/wayland-devel

Reply via email to