aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/amd/amdgpu/amdgpu_atombios.c
diff options
context:
space:
mode:
authorAlex Deucher <alexander.deucher@amd.com>2016-08-24 12:31:36 -0400
committerAlex Deucher <alexander.deucher@amd.com>2016-08-24 14:04:24 -0400
commite1718d97aa88ea44a6a8f50ff464253dd0dacf01 (patch)
treed168d3c0c61ff0c9874566111bc2d6aa74ce63ee /drivers/gpu/drm/amd/amdgpu/amdgpu_atombios.c
parent5661538749511d4c2f7d33e1e179f10c545b24d5 (diff)
drm/amdgpu: avoid a possible array overflow
When looking up the connector type make sure the index is valid. Avoids a later crash if we read past the end of the array. Workaround for bug: https://bugs.freedesktop.org/show_bug.cgi?id=97460 Reviewed-by: Christian König <christian.koenig@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com> Cc: stable@vger.kernel.org
Diffstat (limited to 'drivers/gpu/drm/amd/amdgpu/amdgpu_atombios.c')
-rw-r--r--drivers/gpu/drm/amd/amdgpu/amdgpu_atombios.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_atombios.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_atombios.c
index 983175363b06..151422307d31 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_atombios.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_atombios.c
@@ -321,6 +321,12 @@ bool amdgpu_atombios_get_connector_info_from_object_table(struct amdgpu_device *
321 (le16_to_cpu(path->usConnObjectId) & 321 (le16_to_cpu(path->usConnObjectId) &
322 OBJECT_TYPE_MASK) >> OBJECT_TYPE_SHIFT; 322 OBJECT_TYPE_MASK) >> OBJECT_TYPE_SHIFT;
323 323
324 if (con_obj_id >= ARRAY_SIZE(object_connector_convert)) {
325 DRM_ERROR("invalid con_obj_id %d for device tag 0x%04x\n",
326 con_obj_id, le16_to_cpu(path->usDeviceTag));
327 continue;
328 }
329
324 connector_type = 330 connector_type =
325 object_connector_convert[con_obj_id]; 331 object_connector_convert[con_obj_id];
326 connector_object_id = con_obj_id; 332 connector_object_id = con_obj_id;