Skip to content

Fix display hotplugging/unplugging crashes

When hotunplugging a display, the compositor will tear the top-level wet_output object down, freeing its memory.

However, destruction of the backend output might be delayed in certain situations (e.g. destroying DRM output while in the middle of a page flip).

When the backend output is finally destroyed, it will trigger a destruction callback previously added by the compositor, which point to data belonging to the top-level wet_output object.

In order to avoid access to invalid data when the backend output is destroyed after the top-level wet_output object, remove the destruction callback from the corresponding list before freeing the object.

Additionally, fix NULL output dereferences in desktop-shell when a display is hotunplugged.

Signed-off-by: Miguel A Vico Moya mvicomoya@nvidia.com

Merge request reports