amdgpu/pm: prevent array underflow in vega20_odn_edit_dpm_table()
authorDan Carpenter <error27@gmail.com>
Tue, 15 Nov 2022 12:56:57 +0000 (15:56 +0300)
committerAlex Deucher <alexander.deucher@amd.com>
Tue, 15 Nov 2022 18:35:16 +0000 (13:35 -0500)
In the PP_OD_EDIT_VDDC_CURVE case the "input_index" variable is capped at
2 but not checked for negative values so it results in an out of bounds
read.  This value comes from the user via sysfs.

Fixes: d5bf26539494 ("drm/amd/powerplay: added vega20 overdrive support V3")
Signed-off-by: Dan Carpenter <error27@gmail.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/pm/powerplay/hwmgr/vega20_hwmgr.c

index 97b3ad3..b30684c 100644 (file)
@@ -2961,7 +2961,8 @@ static int vega20_odn_edit_dpm_table(struct pp_hwmgr *hwmgr,
                        data->od8_settings.od8_settings_array;
        OverDriveTable_t *od_table =
                        &(data->smc_state_table.overdrive_table);
-       int32_t input_index, input_clk, input_vol, i;
+       int32_t input_clk, input_vol, i;
+       uint32_t input_index;
        int od8_id;
        int ret;