[PATCH weston v2] compositor: fix crash when destroying incompletely created output

Derek Foreman derekf at osg.samsung.com
Fri Aug 7 10:00:12 PDT 2015


Thanks,

Reviewed-by: Derek Foreman <derekf at osg.samsung.com>

On 06/08/15 07:04 PM, Dawid Gajownik wrote:
> 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 <gajownik at gmail.com>
> ---
>  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,
> 



More information about the wayland-devel mailing list