[PATCH weston] comp-wayland: use safe foreach when destroying outputs
Jason Ekstrand
jason at jlekstrand.net
Fri May 23 05:25:53 PDT 2014
To be honest, I don't think I looked at the other backends too much when
writing the wayland backend. I guess cleaning up myself seemed like a good
idea at the time. I don't think it really matters; having it in shutdown
just lets backends be lazy.
--Jason
On Fri, May 23, 2014 at 2:03 AM, Pekka Paalanen <ppaalanen at gmail.com> wrote:
> On Wed, 21 May 2014 09:20:02 -0700
> "U. Artie Eoff" <ullysses.a.eoff at intel.com> wrote:
>
> > wl_list_for_each dereference's output to increment the
> > next iteration of the loop. However, output is free'd
> > inside the loop resulting in a dereference to free'd
> > memory.
> >
> > Use wl_list_for_each_safe instead, which is designed to
> > handle this kind of pattern.
> >
> > Signed-off-by: U. Artie Eoff <ullysses.a.eoff at intel.com>
> > ---
> > src/compositor-wayland.c | 4 ++--
> > 1 file changed, 2 insertions(+), 2 deletions(-)
> >
> > diff --git a/src/compositor-wayland.c b/src/compositor-wayland.c
> > index a08b71a..76e5396 100644
> > --- a/src/compositor-wayland.c
> > +++ b/src/compositor-wayland.c
> > @@ -1997,9 +1997,9 @@ err_free:
> > static void
> > wayland_compositor_destroy(struct wayland_compositor *c)
> > {
> > - struct weston_output *output;
> > + struct weston_output *output, *next;
> >
> > - wl_list_for_each(output, &c->base.output_list, link)
> > + wl_list_for_each_safe(output, next, &c->base.output_list, link)
> > wayland_output_destroy(output);
> >
> > c->base.renderer->destroy(&c->base);
>
> The DRM, x11 and rpi backends do not do this at all. Instead they rely
> on weston_compositor_shutdown() to destroy all outputs and the renderer.
>
> Is there a reason why the wayland backend is different?
>
>
> Thanks,
> pq
> _______________________________________________
> wayland-devel mailing list
> wayland-devel at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/wayland-devel
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freedesktop.org/archives/wayland-devel/attachments/20140523/52db2d96/attachment.html>
More information about the wayland-devel
mailing list