wlroots/backend
Simon Ser c88ad532ad backend/wayland: don't cache next item when destroying buffers
Because wl_buffer.release is per-buffer and not per-commit, the
Wayland backend might create multiple struct wlr_wl_buffer per
struct wlr_buffer. As a result, the wlr_buffer_unlock() call inside
destroy_wl_buffer() can cause another struct wlr_wl_buffer to be
destroyed.

In backend_destroy() we were iterating the list of buffers with
wl_list_for_each_safe(), which is actually not safe in this case:
the next buffer is cached, but might be destroyed as a side-effect
of calling destroy_wl_buffer().

Closes: https://gitlab.freedesktop.org/wlroots/wlroots/-/issues/3572
2023-02-02 16:45:09 +00:00
..
drm backend/drm: set "max bpc" property based on pixel format 2023-01-31 09:32:11 +00:00
headless backend: use global output name counters 2022-10-13 13:12:43 +02:00
libinput build: unify naming for HAVE_* defines 2022-12-06 22:39:45 +00:00
multi backend: drop wlr_backend_get_session() 2022-11-15 21:16:25 +00:00
session backend/session: make optional 2022-11-25 16:15:29 +00:00
wayland backend/wayland: don't cache next item when destroying buffers 2023-02-02 16:45:09 +00:00
x11 backend/x11: fix delta_discrete value 2023-01-16 14:19:44 +03:00
backend.c backend/session: make optional 2022-11-25 16:15:29 +00:00
meson.build backend/session: make optional 2022-11-25 16:15:29 +00:00