xserver/hw
Olivier Fourdan d346a6dec0 xwayland: Avoid NULL pointer dereference in damage_report()
Commit 34934c37d6 restored calling register_damage() in
xwl_realize_window() before ensure_surface_for_window().

However if register_damage() succeeds and ensure_surface_for_window()
returns NULL, it would exit without "unregistering" the damage hook.

The X11 window, however, may still get damages reports, in which case
xwl_window_from_window() would return NULL, causing a NULL pointer
dereference in damage_report().

To avoid the issue, make sure we unregister the damage report if
ensure_surface_for_window() has failed, and add an early exit in
damage_report() if xwl_window is NULL.

v2: unregister_damage() unconditionally if ensure_surface_for_window()
    failed (Michel Dänzer)

Fixes: commit 34934c37d6 ("revert: register damage before ensure_surface_for_window")
Closes: https://gitlab.freedesktop.org/xorg/xserver/-/work_items/1886
Signed-off-by: Olivier Fourdan <ofourdan@redhat.com>
(cherry picked from commit 36f53145e4)

Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/2191>
2026-04-24 09:44:33 +02:00
..
vfb Don't install Xvfb 2024-04-12 10:40:05 +02:00
xfree86/common Drop Xorg DDX 2024-04-12 10:40:05 +02:00
xwayland xwayland: Avoid NULL pointer dereference in damage_report() 2026-04-24 09:44:33 +02:00
meson.build Drop Xephyr / kdrive DDX 2024-04-12 10:40:05 +02:00