From: Alex Hung <alex.h...@amd.com>

aux_rd_interval has size of 7 and should be checked.

This fixes 3 OVERRUN and 1 INTEGER_OVERFLOW issues reported by Coverity.

Reviewed-by: Rodrigo Siqueira <rodrigo.sique...@amd.com>
Acked-by: Tom Chung <chiahsuan.ch...@amd.com>
Signed-off-by: Alex Hung <alex.h...@amd.com>
---
 .../gpu/drm/amd/display/dc/link/protocols/link_dp_training.c  | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.c 
b/drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.c
index 1818970b8eaf..b8e704dbe956 100644
--- a/drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.c
+++ b/drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.c
@@ -914,10 +914,10 @@ static enum dc_status 
configure_lttpr_mode_non_transparent(
                        /* Driver does not need to train the first hop. Skip 
DPCD read and clear
                         * AUX_RD_INTERVAL for DPTX-to-DPIA hop.
                         */
-                       if (link->ep_type == DISPLAY_ENDPOINT_USB4_DPIA)
+                       if (link->ep_type == DISPLAY_ENDPOINT_USB4_DPIA && 
repeater_cnt > 0 && repeater_cnt < MAX_REPEATER_CNT)
                                
link->dpcd_caps.lttpr_caps.aux_rd_interval[--repeater_cnt] = 0;
 
-                       for (repeater_id = repeater_cnt; repeater_id > 0; 
repeater_id--) {
+                       for (repeater_id = repeater_cnt; repeater_id > 0 && 
repeater_id < MAX_REPEATER_CNT; repeater_id--) {
                                aux_interval_address = 
DP_TRAINING_AUX_RD_INTERVAL_PHY_REPEATER1 +
                                                
((DP_REPEATER_CONFIGURATION_AND_STATUS_SIZE) * (repeater_id - 1));
                                core_link_read_dpcd(
-- 
2.34.1

Reply via email to