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

Bryce Harrington bryce at osg.samsung.com
Fri Aug 7 12:30:04 PDT 2015


On Fri, Aug 07, 2015 at 12:00:12PM -0500, Derek Foreman wrote:
> Thanks,
> 
> Reviewed-by: Derek Foreman <derekf at osg.samsung.com>

Thanks, pushed to trunk:
To ssh://git.freedesktop.org/git/wayland/weston
   58106d7..2f7d33d  master -> master
 
> 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,
> > 
> 
> _______________________________________________
> wayland-devel mailing list
> wayland-devel at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/wayland-devel


More information about the wayland-devel mailing list