xserver/hw
Olivier Fourdan 36f53145e4 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>
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/2190>
2026-04-24 07:16:12 +00:00
..
kdrive treewide: fix typos 2026-03-14 16:52:19 +00:00
vfb vfb: use snprintf when writing XWD window name 2026-04-15 23:38:29 +00:00
xfree86 xf86: drop no longer needed entries from default driver list for Intel 2026-04-11 18:05:19 +00:00
xnest Xnest: use authorative declarations from X11/XKBlib.h 2026-01-25 10:40:01 -08:00
xquartz meson: replace join_paths() with / operator 2026-03-28 10:02:41 -07:00
xwayland xwayland: Avoid NULL pointer dereference in damage_report() 2026-04-24 07:16:12 +00:00
xwin meson: replace join_paths() with / operator 2026-03-28 10:02:41 -07:00
meson.build meson.build: print a summary of the DDX to build 2026-01-25 10:40:01 -08:00