From b83f11f2241e7af6c977537e6a052720accc3715 Mon Sep 17 00:00:00 2001 From: Nilesh Laad Date: Wed, 6 Dec 2023 17:03:32 +0530 Subject: [PATCH] disp: msm: sde: address array index out-of-bound issue Add a check on number of built in displays to avoid array index out of bounds issue. Signed-off-by: Nilesh Laad Change-Id: I1af626d2f05bf822e02c8e228c28823370d32b4f --- msm/sde/sde_kms.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/msm/sde/sde_kms.c b/msm/sde/sde_kms.c index e0df3cc96fd8..43c436d6ba3a 100644 --- a/msm/sde/sde_kms.c +++ b/msm/sde/sde_kms.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2022-2023 Qualcomm Innovation Center, Inc. All rights reserved. + * Copyright (c) 2022-2024 Qualcomm Innovation Center, Inc. All rights reserved. * Copyright (c) 2014-2021, The Linux Foundation. All rights reserved. * Copyright (C) 2013 Red Hat * Author: Rob Clark @@ -4493,6 +4493,12 @@ static int _sde_kms_get_splash_data(struct sde_kms *sde_kms, + dp_display_get_num_of_boot_displays(); num_regions = of_property_count_u64_elems(node, "reg") / 2; + if (num_displays >= MAX_DSI_DISPLAYS) { + SDE_ERROR("invalid number of built in displays %d\n", + num_displays); + return -EINVAL; + } + data->num_splash_displays = num_displays; SDE_DEBUG("splash mem num_regions:%d\n", num_regions);