weston/libweston
Michael Olbrich 638dee44ec libweston: mitigate race when destroying outputs
With some displays connect, disconnect, connect events can happen is a very
short amount of time. When this happens, the output global may already be
destroyed when a client tries to bind it. As a result, the client is
disconnected with a protocol error. See [1] for more details on the general
problem.

To mitigate this problem call wl_global_remove() first and call
wl_global_destroy() several seconds later. This is inspired by the
implementation for the same problem in wlroots.

[1] https://gitlab.freedesktop.org/wayland/wayland/-/issues/10

Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
2023-03-14 13:24:32 +02:00
..
backend-drm backend-drm: add additional-devices to support multi GPU 2023-03-03 08:08:46 +00:00
backend-headless gl-renderer: use pixel_format_info instead of drm fourccs 2023-01-29 14:47:03 +01:00
backend-rdp backend: Make input notification functions use weston_coord 2023-02-09 12:12:40 +00:00
backend-vnc backend-vnc: rename vnc_convert_damage to vnc_region_global_to_output 2023-02-28 08:45:48 +02:00
backend-wayland backend-wayland: reuse backend->formats[0] as pixman/cairo/shm pixel format 2023-02-16 09:48:55 +00:00
backend-x11 backend-x11: use weston_coord to store previous pointer position 2023-02-24 18:44:19 +00:00
color-lcms color-lcms: add support for matrices 2022-09-28 10:28:28 +00:00
desktop libweston: Use weston_coord in surface committed handler 2023-02-24 18:44:19 +00:00
renderer-gl clipping: Use struct weston_coord in vertex clipping code 2023-02-09 12:12:40 +00:00
shell-utils libweston: Convert struct weston_subsurface to weston_coord 2023-02-24 18:44:19 +00:00
animation.c Fix indentation all through the project 2021-07-31 15:28:20 +00:00
auth.c libweston: Add user authentication support via PAM 2022-11-23 16:58:48 +01:00
backend.h backend: Make input notification functions use weston_coord 2023-02-09 12:12:40 +00:00
bindings.c Don't send compositor's global key bindings to the input method 2022-02-23 15:40:33 +02:00
clipboard.c libweston: correct argument name in the handler of wl_data_source.accept 2022-04-14 12:05:57 +00:00
color-noop.c libweston: add HDR metadata to weston_output 2022-05-27 10:30:35 +00:00
color.c backend-drm: check for HDR_OUTPUT_METADATA 2022-05-02 12:19:24 +00:00
color.h gl-renderer: add matrix 2022-09-28 10:28:28 +00:00
compositor.c libweston: mitigate race when destroying outputs 2023-03-14 13:24:32 +02:00
content-protection.c content-protection: Don't leak update timer on shutdown 2021-12-08 13:38:18 +00:00
data-device.c libweston: Use weston_coord in surface committed handler 2023-02-24 18:44:19 +00:00
dbus.c dbus: Don't return value from void function 2019-06-11 11:31:04 +01:00
dbus.h Rename compositor.h to libweston/libweston.h 2019-04-18 12:31:46 +03:00
drm-formats.c drm-formats: add weston_drm_format_array_count_pairs() 2021-11-25 10:47:45 -03:00
git-version.h.meson Add Meson build system 2018-12-09 14:50:54 +02:00
gl-borders.c libweston, backends: move GL renderer interface into weston_renderer 2023-01-16 20:40:34 +01:00
gl-borders.h libweston, backends: move GL renderer interface into weston_renderer 2023-01-16 20:40:34 +01:00
input.c libweston: Add assert for valid confine region in maybe_warp_confined_pointer() 2023-03-13 16:09:33 -05:00
launcher-impl.h launchers: Remove --tty option 2022-03-03 17:00:15 -06:00
launcher-libseat.c libweston: Enable logging for libseat launcher 2022-03-10 17:13:16 +02:00
launcher-logind.c libweston, backends: pass backend parameter to weston_backend functions 2023-01-13 18:55:59 +01:00
launcher-util.c launchers: Remove --tty option 2022-03-03 17:00:15 -06:00
launcher-util.h launchers: Remove --tty option 2022-03-03 17:00:15 -06:00
libinput-device.c input: Convert weston_pointer_motion_event to weston_coord 2023-02-09 12:12:40 +00:00
libinput-device.h compositor: Use paced logger for unknown scroll source 2022-11-08 08:32:26 -06:00
libinput-seat.c libweston: Use weston_coord in struct weston_pointer 2023-02-17 13:51:23 +00:00
libinput-seat.h Rename compositor.h to libweston/libweston.h 2019-04-18 12:31:46 +03:00
libweston-internal.h input: Use weston_coord for pointer clamping 2023-02-17 13:51:23 +00:00
linux-dmabuf.c helpers: Add a u64 from 2 u32 helper 2022-10-27 08:13:30 +00:00
linux-dmabuf.h linux-dmabuf: add missing includes and declarations 2022-12-16 15:05:10 +02:00
linux-explicit-synchronization.c libweston: Advertise minor version 2 of zwp_linux_explicit_synchronization_v1 2019-08-02 15:00:08 +00:00
linux-explicit-synchronization.h libweston: Support zwp_surface_synchronization_v1.set_acquire_fence 2019-02-06 12:21:56 +00:00
linux-sync-file-uapi.h libweston: Introduce an internal linux sync file API 2019-02-06 12:21:56 +00:00
linux-sync-file.c libweston: export weston_linux_sync_file_read_timestamp() 2019-04-18 12:50:55 +03:00
linux-sync-file.h libweston: export weston_linux_sync_file_read_timestamp() 2019-04-18 12:50:55 +03:00
log.c libweston: Add weston_log_paced() 2022-11-08 08:32:26 -06:00
meson.build libweston: Add support for tearing-control 2023-02-01 10:12:55 -06:00
noop-renderer.c pixman-renderer: set renderbuffer via new repaint_output parameter 2023-01-23 20:05:21 +00:00
output-capture.c Revert "libweston: let weston_output_update_capture_info() take drm_format" 2023-01-28 12:59:16 +00:00
output-capture.h Revert "libweston: let weston_output_update_capture_info() take drm_format" 2023-01-28 12:59:16 +00:00
pixel-formats.c pixel-formats: add pixel_format_get_array() 2023-01-29 14:47:03 +01:00
pixel-formats.h pixel-formats: add pixel_format_get_array() 2023-01-29 14:47:03 +01:00
pixman-renderer.c pixman-renderer: hold a reference for renderbuffers on the output state list 2023-03-03 07:36:32 +00:00
pixman-renderer.h pixman-renderer: use pixel_format_info instead of pixman_format_code_t 2023-01-28 12:59:16 +00:00
plugin-registry.c Rename plugin-registry.h to libweston/plugin-registry.h 2019-04-18 12:31:46 +03:00
screenshooter.c screenshooter: Add SHM buffer destroy listener to avoid invalid memcpy 2022-10-03 16:52:16 +02:00
spring-tool.c Rename compositor.h to libweston/libweston.h 2019-04-18 12:31:46 +03:00
timeline.c libweston: fix typos 2021-02-24 10:01:17 -05:00
timeline.h libweston: move TYPEVERIFY macro into shared 2021-02-17 12:52:33 +00:00
touch-calibration.c libweston: Use weston_coord space conversion functions 2023-02-01 07:27:05 -06:00
vertex-clipping.c clipping: Use struct weston_coord in vertex clipping code 2023-02-09 12:12:40 +00:00
vertex-clipping.h clipping: Use struct weston_coord in vertex clipping code 2023-02-09 12:12:40 +00:00
weston-direct-display.c libweston: Add weston-direct-display server side implementation 2019-11-18 19:33:09 +02:00
weston-log-file.c weston-log: destroy subscriptions with destruction of subscribers 2020-02-10 10:53:50 +00:00
weston-log-flight-rec.c weston-log-flight-rec: Map ring buffer using memset() 2023-03-10 11:35:04 +01:00
weston-log-internal.h weston-log-wayland: make stream_destroy() use weston_log_subscriber_release() 2020-02-10 10:53:50 +00:00
weston-log-wayland.c Fix indentation all through the project 2021-07-31 15:28:20 +00:00
weston-log.c weston-log: Fix documentation for weston_log_subscription_create 2022-07-01 17:20:18 +03:00