diff options
author | Adam Jackson <ajax@freedesktop.org> | 2005-12-09 18:25:02 +0000 |
---|---|---|
committer | Adam Jackson <ajax@freedesktop.org> | 2005-12-09 18:25:02 +0000 |
commit | 5446e934a63ae28769a10110c8e712c349bacfef (patch) | |
tree | 8116f1840729d3dbffb6d6d596d585d331f7b3c0 | |
parent | 8e115f2546aece7155ab266f725965830b9ad61d (diff) |
Bug #3869: Don\'t walk off the end of an array in connector detection.MODULAR_COPY
(Eric Anholt)
-rw-r--r-- | src/radeon_bios.c | 10 |
1 files 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"); } } |