From 328a2d74dabe32ce35e879799412666feedb0eef Mon Sep 17 00:00:00 2001 From: Adam Jackson Date: Fri, 9 Dec 2005 18:25:02 +0000 Subject: Bug #3869: Don\'t walk off the end of an array in connector detection. (Eric Anholt) --- src/radeon_bios.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/radeon_bios.c b/src/radeon_bios.c index 787514d..aec55b7 100644 --- a/src/radeon_bios.c +++ b/src/radeon_bios.c @@ -165,12 +165,12 @@ Bool RADEONGetConnectorInfoFromBIOS (ScrnInfoPtr pScrn) pRADEONEnt->PortInfo[crtc].DDCType = DDC_CRT2; break; default: - pRADEONEnt->PortInfo[crtc].DDCType = DDC_NONE; + pRADEONEnt->PortInfo[crtc].DDCType = DDC_NONE_DETECTED; break; } } else { - pRADEONEnt->PortInfo[crtc].DDCType = DDC_NONE; + pRADEONEnt->PortInfo[crtc].DDCType = DDC_NONE_DETECTED; } crtc++; } else { @@ -273,6 +273,12 @@ Bool RADEONGetConnectorInfoFromBIOS (ScrnInfoPtr pScrn) if ((tmp0 = RADEON_BIOS16(tmp + 0x15))) { if ((tmp1 = RADEON_BIOS8(tmp0+2) & 0x07)) { pRADEONEnt->PortInfo[0].DDCType = tmp1; + if (pRADEONEnt->PortInfo[0].DDCType > DDC_CRT2) { + xf86DrvMsg(pScrn->scrnIndex, X_WARNING, + "Unknown DDCType %d found\n", + pRADEONEnt->PortInfo[0].DDCType); + pRADEONEnt->PortInfo[0].DDCType = DDC_NONE_DETECTED; + } xf86DrvMsg(pScrn->scrnIndex, X_WARNING, "LCD DDC Info Table found!\n"); } } -- cgit v1.2.3