kms/crtc: Fix gamma state leak

The gamma value pointers of the current_state are overwritten by the
calls to memdup causing a small leak. while the leak itself is small, it
can be triggered quite often from things like night light.

https://gitlab.gnome.org/GNOME/mutter/merge_requests/1020
This commit is contained in:
Sebastian Keller 2020-01-24 18:46:20 +01:00 committed by Georges Basile Stavracas Neto
parent 51733ca499
commit 9feda1c58b

View File

@ -203,6 +203,7 @@ meta_kms_crtc_predict_state (MetaKmsCrtc *crtc,
if (gamma->crtc != crtc) if (gamma->crtc != crtc)
continue; continue;
clear_gamma_state (crtc);
crtc->current_state.gamma.size = gamma->size; crtc->current_state.gamma.size = gamma->size;
crtc->current_state.gamma.red = crtc->current_state.gamma.red =
g_memdup (gamma->red, gamma->size * sizeof (uint16_t)); g_memdup (gamma->red, gamma->size * sizeof (uint16_t));