From 67157d16a97a0dc896d5a70245ba8f9f360112c8 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Wed, 10 Nov 2021 16:36:12 +0000 Subject: [PATCH 0016/1085] drm/vc4: Validate the size of the gamma_lut Add a check to vc4_hvs_gamma_check to ensure a new non-empty gamma LUT is of the correct length before accepting it. Signed-off-by: Dave Stevenson --- drivers/gpu/drm/vc4/vc4_hvs.c | 10 ++++++++++ 1 file changed, 10 insertions(+) --- a/drivers/gpu/drm/vc4/vc4_hvs.c +++ b/drivers/gpu/drm/vc4/vc4_hvs.c @@ -614,6 +614,16 @@ static int vc4_hvs_gamma_check(struct dr if (!crtc_state->color_mgmt_changed) return 0; + if (crtc_state->gamma_lut) { + unsigned int len = drm_color_lut_size(crtc_state->gamma_lut); + + if (len != crtc->gamma_size) { + DRM_DEBUG_KMS("Invalid LUT size; got %u, expected %u\n", + len, crtc->gamma_size); + return -EINVAL; + } + } + connector = vc4_get_crtc_connector(crtc, crtc_state); if (!connector) return -EINVAL;