wlroots/backend
Simon Ser a9c6ae6fcc 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
(cherry picked from commit c88ad532ad)
2023-02-02 17:53:10 +01:00
..
drm backend/drm: set "max bpc" property based on pixel format 2023-01-31 17:16:59 +01:00
headless backend: use global output name counters 2022-10-13 13:12:43 +02:00
libinput backend/libinput: Fix SIGSEGV found in low-memory fuzzing 2022-09-22 13:37:32 -04:00
multi Use wl_signal_emit_mutable 2022-08-18 07:16:16 -04:00
session Use wl_signal_emit_mutable 2022-08-18 07:16:16 -04:00
wayland backend/wayland: don't cache next item when destroying buffers 2023-02-02 17:53:10 +01:00
x11 backend/x11: fix delta_discrete value 2023-01-16 14:21:15 +03:00
backend.c backend: error out when missing DRM and libinput in wlr_backend_autocreate() 2022-12-07 15:06:29 +01:00
meson.build backend: remove noop backend 2021-11-25 16:49:05 +00:00