From 3d318e18b527244d3c8ff62455fa6f95be1e3d2b Mon Sep 17 00:00:00 2001 From: Sebastian Wick Date: Tue, 10 Oct 2023 18:05:30 +0200 Subject: [PATCH] kms/impl-device/atomic: Fix blob size Fixes: ed0682003 ("kms/impl-device/atomic: Fix stack overflow") Part-of: --- src/backends/native/meta-kms-impl-device-atomic.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) 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;