Skip to content

desktop-shell: Don't crash if output is removed during fade

Derek Foreman requested to merge derekf/weston:derekf/shell_crash into main

The desktop shell output removed handler deletes the fade surface, if it's still running - however, that surface has a view that also has a listener attached to the output_destroyed signal. Destroying the surface will delete the view, which will remove that handler and corrupt the list, because we can't remove nodes from a wl_list while a walk is in progress.

Instead, destroy the fade surface from the output user_destroy_signal, which runs earlier from a different wl_list.

The easiest way to reproduce this crash is to run: weston --invalid_command_line_option

Signed-off-by: Derek Foreman derekf@collabora.com

Merge request reports