When the output can't be completely created in the backend (for example lack of memory), weston_compositor_add_output() is never run. In such a case output->link is not initialized. Letter, when weston_output_destroy() is called, application crashes on wl_list_remove(&output->link).
This problem happens when drm, fbdev, rdp, rpi or wayland backend is used. v2: Initialize output->link in weston_output_init() as suggested by Derek Foreman. Signed-off-by: Dawid Gajownik <[email protected]> --- src/compositor.c | 1 + 1 file changed, 1 insertion(+) diff --git a/src/compositor.c b/src/compositor.c index e27f44e..0268afc 100644 --- a/src/compositor.c +++ b/src/compositor.c @@ -4077,6 +4077,7 @@ weston_output_init(struct weston_output *output, struct weston_compositor *c, wl_list_init(&output->animation_list); wl_list_init(&output->resource_list); wl_list_init(&output->feedback_list); + wl_list_init(&output->link); loop = wl_display_get_event_loop(c->wl_display); output->repaint_timer = wl_event_loop_add_timer(loop, -- 2.4.3 _______________________________________________ wayland-devel mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/wayland-devel
