fixed bug in wl_list
krh at bitplanet.net
Sat Mar 12 18:29:44 PST 2011
On Fri, Mar 11, 2011 at 7:32 PM, Iskren Chernev
<iskren.chernev at gmail.com> wrote:
> I found a bug and fixed it with the patch :)
> to reproduce:
I wasn't able to reproduce it immediately, but I know that there's a
crasher in there somewhere. I think the real fix is the patch I've
attached, could you give it a try and see if it fixes it for you?
> run compositor on top of x11
> run flower
> drag & drop it a little
> move the pointer in and out of the compositor/flower
> Ctrl+C the flower client
> it would break eventually
> I found that the linked list surface->destroy_listener_list got corrupted at
> some point (it was not circular any more, strange next/prev etc), which
> causes the crash.
> The problem was in wl_list_remove -- when you erase an element, you don't
> mark it as 'erased', by setting prev/next to NULL for example. Then if you
> erase it again the list becomes corrupt. I nullified the prev/next and check
> in the begining of wl_list_remove for not-in-list elements and just ignore
> them. That seems to fix it.
> wayland-devel mailing list
> wayland-devel at lists.freedesktop.org
-------------- next part --------------
A non-text attachment was scrubbed...
Size: 2395 bytes
Desc: not available
More information about the wayland-devel