diff --git a/src/backends/native/meta-kms-impl-device-atomic.c b/src/backends/native/meta-kms-impl-device-atomic.c index f7f0d60bb..2ca70326f 100644 --- a/src/backends/native/meta-kms-impl-device-atomic.c +++ b/src/backends/native/meta-kms-impl-device-atomic.c @@ -676,10 +676,12 @@ process_crtc_color_updates (MetaKmsImplDevice *impl_device, { MetaGammaLut *gamma = color_update->gamma.state; g_autofree struct drm_color_lut *drm_color_lut = NULL; + size_t color_lut_size; int i; uint32_t color_lut_blob_id; - drm_color_lut = g_new (struct drm_color_lut, gamma->size); + color_lut_size = sizeof (struct drm_color_lut) * gamma->size; + drm_color_lut = g_malloc (color_lut_size); for (i = 0; i < gamma->size; i++) { @@ -691,7 +693,7 @@ process_crtc_color_updates (MetaKmsImplDevice *impl_device, color_lut_blob_id = store_new_blob (impl_device, blob_ids, drm_color_lut, - sizeof drm_color_lut, + color_lut_size, error); if (!color_lut_blob_id) return FALSE;