sway/sway/desktop
Kenny Levinsen 5312376077 desktop/output: Clear repaint timer earlier in destroy
The teardown of a sway_output is split in two: begin_destroy and
output_destroy. The former clears some state such as NULL'ing the
reference to wlr_output, while the latter frees the struct and its
remaining resources.

If an output is destroyed while a repaint timer is pending, future frame
callbacks will no longer occur as the listener is torn down in
begin_destroy, but the repaint timer is not torn down and may still
fire until output_destroy is hit. As begin_destroy cleared the reference
to wlr_output, this leads to a NULL-pointer dereference.

Tear down the repaint timer in begin_destroy as there is no need for it.

Fixes: fdc4318ac6 ("desktop/output: Clear frame_pending even output is disabled")
2024-11-17 16:03:35 -05:00
..
idle_inhibit_v1.c Drop support for KDE's idle protocol 2023-10-05 00:01:54 +02:00
launcher.c Drop server.h include from input/input-manager.h 2024-05-27 09:28:43 -04:00
layer_shell.c layer_shell: Restore sway 1.9 ordering 2024-10-18 14:10:28 +02:00
output.c desktop/output: Clear repaint timer earlier in destroy 2024-11-17 16:03:35 -05:00
tearing.c tearing: fix UAF on destroy 2024-08-07 14:33:03 +02:00
transaction.c desktop/transaction: clamp vertical border length to 0 2024-11-07 22:41:14 -05:00
xdg_shell.c xdg-shell: chase xdg_surface geometry updates 2024-08-14 15:04:00 -04:00
xwayland.c xwayland: Let scene restack 2024-08-07 23:58:13 +03:00