drivers/gpu/drm/radeon/radeon_atombios.c: range check issues
Subsystems (2)
PATCH 3/5 drivers/gpu/drm/radeon/radeon_atombios.c: range check issues
From: Dan Carpenter <[email protected]>
This change makes the array larger, "MAX_SUPPORTED_TV_TIMING_V1_2" is 3 and the original size "MAX_SUPPORTED_TV_TIMING" is 2.
Also there were checks that were off by one.
Signed-off-by Dan Carpenter <[email protected]>
Cc David Airlie <[email protected]>
Acked-by Alex Deucher <[email protected]>
Signed-off-by Andrew Morton <[email protected]>
---
drivers/gpu/drm/radeon/atombios.h | 2 +- drivers/gpu/drm/radeon/radeon_atombios.c | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-)
drivers/gpu/drm/radeon/atombios.h renamed from drivers/gpu/drm/radeon/atombios.h~drivers-gpu-drm-radeon-radeon_atombiosc-range-check-issues +1 -1
@@ -2912,7 +2912,7 @@ typedef struct _ATOM_ANALOG_TV_INFO_V1_2UCHAR ucTV_BootUpDefaultStandard;UCHAR ucExt_TV_ASIC_ID;UCHAR ucExt_TV_ASIC_SlaveAddr; -ATOM_DTD_FORMAT aModeTimings[MAX_SUPPORTED_TV_TIMING ]; +ATOM_DTD_FORMAT aModeTimings[MAX_SUPPORTED_TV_TIMING_V1_2 ]; }ATOM_ANALOG_TV_INFO_V1_2 ; typedef struct _ATOM_DPCD_INFO
drivers/gpu/drm/radeon/radeon_atombios.c renamed from drivers/gpu/drm/radeon/radeon_atombios.c~drivers-gpu-drm-radeon-radeon_atombiosc-range-check-issues +2 -2
@@ -1264,7 +1264,7 @@ bool radeon_atom_get_tv_timings(struct rswitch (crev) {case 1 : tv_info = (ATOM_ANALOG_TV_INFO *)(mode_info->atom_context->bios + data_offset); -if (index >MAX_SUPPORTED_TV_TIMING ) +if (index >=MAX_SUPPORTED_TV_TIMING )return false; mode->crtc_htotal =le16_to_cpu (tv_info->aModeTimings[index].usCRTC_H_Total);
@@ -1302,7 +1302,7 @@ bool radeon_atom_get_tv_timings(struct rbreak ;case 2 : tv_info_v1_2 = (ATOM_ANALOG_TV_INFO_V1_2 *)(mode_info->atom_context->bios + data_offset); -if (index >MAX_SUPPORTED_TV_TIMING_V1_2 ) +if (index >=MAX_SUPPORTED_TV_TIMING_V1_2 )return false; dtd_timings = &tv_info_v1_2->aModeTimings[index];
_
------------------------------------------------------------------------------
--