xserver/hw/xwayland
Olivier Fourdan a5e863963e xwayland: Force disposal of windows buffers for root on destroy
With explicit buffer synchronization in use, the window buffers use a
file descriptor for event notification to keep the buffer alive for
synchronization purpose.

When running rootful, the root window (which is visible) is destroyed
directly from the resource manager on server reset, and the window
buffer's eventfd will trigger after the window is destroyed, leading to
a use after free and a crash of the xserver.

To avoid the issue, check whether the window being destroyed is the root
window in rootless mode, and make sure to force the disposal of the
window buffers in that case.

Signed-off-by: Olivier Fourdan <ofourdan@redhat.com>
Closes: https://gitlab.freedesktop.org/xorg/xserver/-/issues/1699
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1589>
2024-07-04 08:26:23 +00:00
..
desktop xwayland: Use "-decorate" if available 2024-03-18 23:19:59 +00:00
man xwayland: Update the global screen scale 2024-03-20 09:05:36 +01:00
.gitignore xwayland: Add wp_viewport wayland extension support 2019-10-12 12:19:14 +02:00
drm.xml wayland: Sync drm.xml with Mesa 2017-07-05 10:13:04 -04:00
meson.build xwayland: install pkgconfig to sharedir 2024-05-31 11:55:12 +00:00
xwayland-cursor.c xwayland: Account for the scale factor 2024-03-20 09:05:36 +01:00
xwayland-cursor.h xwayland: Add xwl_cursor_clear_frame_cb() 2021-10-25 12:05:42 +00:00
xwayland-cvt.c xwayland: Keep the CVT timings for non-standard modes 2023-05-15 10:33:21 +02:00
xwayland-cvt.h xwayland: Move Xwayland CVT declaration 2019-12-20 16:19:01 +01:00
xwayland-dmabuf.c xwayland/window-buffers: optionally force disposal 2024-07-04 08:26:23 +00:00
xwayland-dmabuf.h xwayland: Move dmabuf code to its own source file 2024-03-14 15:00:46 +01:00
xwayland-drm-lease.c xwayland: Do not remove output on withdraw if leased 2024-04-30 09:13:34 +02:00
xwayland-drm-lease.h Xwayland: implement drm-lease-v1 2021-12-07 10:02:29 +00:00
xwayland-glamor-gbm.c xwayland/glamor/gbm: Copy explicit sync code to GLAMOR/GBM 2024-07-04 08:13:36 +00:00
xwayland-glamor-gbm.h xwayland/glamor/gbm: Copy explicit sync code to GLAMOR/GBM 2024-07-04 08:13:36 +00:00
xwayland-glamor-xv.c xwayland: Cleanup and remove `xwayland.h` 2019-12-20 16:19:01 +01:00
xwayland-glamor.c xwayland: Try manual redirection for surface window in glamor_check_flip 2024-06-24 08:26:46 +00:00
xwayland-glamor.h xwayland: Pass xwl_window to xwl_glamor_dri3_syncobj_passthrough 2024-04-10 08:55:08 +00:00
xwayland-input.c include: move private definitions out of exevents.h 2024-04-30 00:47:38 +00:00
xwayland-input.h xwayland: Use xwl_window for tracking focus/touch 2024-04-10 08:55:08 +00:00
xwayland-output.c xwayland: Check for duplicate output names 2024-04-23 11:14:31 +02:00
xwayland-output.h xwayland: Do not remove output on withdraw if leased 2024-04-30 09:13:34 +02:00
xwayland-pixmap.c xwayland: Add xwl_pixmap_get_wl_buffer helper 2024-01-22 14:14:05 +00:00
xwayland-pixmap.h xwayland: Replace window pixmap as needed for drawing operation 2024-03-06 17:12:54 +01:00
xwayland-present.c xwayland: Only ignore manual redirection by clients for surface window 2024-06-24 08:26:46 +00:00
xwayland-present.h xwayland: Only ignore manual redirection by clients for surface window 2024-06-24 08:26:46 +00:00
xwayland-screen.c os: move xserver_poll.h into os/ directory 2024-06-21 00:53:39 +00:00
xwayland-screen.h xwayland: Restore the ResizeWindow handler 2024-05-13 08:52:32 +00:00
xwayland-shm.c os: move os_move_fd() out of public API 2024-03-09 17:12:46 +00:00
xwayland-shm.h xwayland: Move SHM declarations to their own header 2019-12-20 16:19:01 +01:00
xwayland-types.h xwayland/window-buffers: Promote xwl_window_buffer 2024-07-04 08:13:36 +00:00
xwayland-vidmode.c dix: unexport GetCurrentClient() 2024-04-15 23:47:47 +00:00
xwayland-vidmode.h xwayland: Move Xwayland vidmode declaration 2019-12-20 16:19:01 +01:00
xwayland-window-buffers.c xwayland/window-buffers: optionally force disposal 2024-07-04 08:26:23 +00:00
xwayland-window-buffers.h xwayland/window-buffers: optionally force disposal 2024-07-04 08:26:23 +00:00
xwayland-window.c xwayland: Force disposal of windows buffers for root on destroy 2024-07-04 08:26:23 +00:00
xwayland-window.h xwayland: Restore the ResizeWindow handler 2024-05-13 08:52:32 +00:00
xwayland-xtest.c xwayland: Send ei_device_frame on device_scroll_discrete 2024-05-11 07:25:48 +01:00
xwayland-xtest.h xwayland: Fallback to plain XTEST if EI does not work 2023-06-26 13:19:19 +02:00
xwayland.c os: move xserver_poll.h into os/ directory 2024-06-21 00:53:39 +00:00