mirror of
https://github.com/brl/mutter.git
synced 2024-12-23 19:42:05 +00:00
kms: drmModeGetCrtc may fail
drmModeGetCrtc may fail and return NULL. This will trigger when meta_kms_crtc_update_state gets called from meta_kms_update_states_sync after a GPU has been unplugged leading to a NULL pointer deref causing a crash. This commit fixes this by checking for NULL and clearing the current_state when NULL is returned. https://gitlab.gnome.org/GNOME/mutter/merge_requests/713
This commit is contained in:
parent
73db35c53c
commit
578ff22464
@ -132,6 +132,13 @@ meta_kms_crtc_update_state (MetaKmsCrtc *crtc)
|
|||||||
impl_device = meta_kms_device_get_impl_device (crtc->device);
|
impl_device = meta_kms_device_get_impl_device (crtc->device);
|
||||||
drm_crtc = drmModeGetCrtc (meta_kms_impl_device_get_fd (impl_device),
|
drm_crtc = drmModeGetCrtc (meta_kms_impl_device_get_fd (impl_device),
|
||||||
crtc->id);
|
crtc->id);
|
||||||
|
if (!drm_crtc)
|
||||||
|
{
|
||||||
|
crtc->current_state.rect = (MetaRectangle) { };
|
||||||
|
crtc->current_state.is_drm_mode_valid = FALSE;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
meta_kms_crtc_read_state (crtc, impl_device, drm_crtc);
|
meta_kms_crtc_read_state (crtc, impl_device, drm_crtc);
|
||||||
drmModeFreeCrtc (drm_crtc);
|
drmModeFreeCrtc (drm_crtc);
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user