fixed bug in wl_list

Kristian Høgsberg 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:
> Hello,
> I found a bug and fixed it with the patch :)
> to reproduce:

Hi,

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?

thanks,
Kristian

> run compositor on top of x11
> repeat
>    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
> problem:
> 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.
> solution:
> 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.
> Regards,
> Iskren
> _______________________________________________
> wayland-devel mailing list
> wayland-devel at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/wayland-devel
>
>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0001-Fix-double-remove-from-surface-destroy_listener_list.patch
Type: text/x-patch
Size: 2395 bytes
Desc: not available
URL: <http://lists.freedesktop.org/archives/wayland-devel/attachments/20110312/b13309eb/attachment.bin>


More information about the wayland-devel mailing list