From: Pekka Paalanen <[email protected]>

This issue was likely introduced by "libweston: add
weston_view_set_output()" which forgot to ensure the output destroy
listener is removed when weston_view is destroyed, leading to freed
memory being left into the list.

This was quite easy to trigger by opening and closing an application
window a few times, leading various memory corruption symptoms.

Signed-off-by: Pekka Paalanen <[email protected]>
---
 libweston/compositor.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/libweston/compositor.c b/libweston/compositor.c
index 6a300e0d..619e88b3 100644
--- a/libweston/compositor.c
+++ b/libweston/compositor.c
@@ -1931,6 +1931,7 @@ weston_view_destroy(struct weston_view *view)
        pixman_region32_fini(&view->transform.opaque);
 
        weston_view_set_transform_parent(view, NULL);
+       weston_view_set_output(view, NULL);
 
        wl_list_remove(&view->surface_link);
 
-- 
2.16.1

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

Reply via email to