retitle 284025 xserver-xfree86: [ati/radeon] SEGV in RADEONQueryConnectedDisplays() # SEGVs are important. severity 284025 important tag 284025 + upstream patch thanks On Thu, Dec 02, 2004 at 05:04:18PM -0700, Bjorn Helgaas wrote: [...] > The problem is pretty clear from the source. We call vbeDoEDID(), > which usually returns a pointer, but can return NULL for failure. > Then we dereference it without bothering to check for NULL: [...] > Here's a patch: > > --- xc/programs/Xserver/hw/xfree86/drivers/ati/radeon_driver.c.orig 2004-11-30 13:59:17.314008332 -0700 > +++ xc/programs/Xserver/hw/xfree86/drivers/ati/radeon_driver.c 2004-11-30 14:00:14.328656071 -0700 > @@ -1272,7 +1272,7 @@ > for (i = 0; i < 5; i++) { > pRADEONEnt->MonInfo1 = vbeDoEDID(pVbe, NULL); > } > - if (pRADEONEnt->MonInfo1->rawData[0x14] & 0x80) > + if (pRADEONEnt->MonInfo1 && pRADEONEnt->MonInfo1->rawData[0x14] & 0x80) > pRADEONEnt->MonType1 = MT_DFP; > else pRADEONEnt->MonType1 = MT_CRT; > } Mr. Helgaas, Thanks for this outstanding report. I wish all reports against xserver-xfree86 came with a GDB session transcript and a patch. :) I'll try to get this fix into the next release. -- G. Branden Robinson | Mob rule isn't any prettier just Debian GNU/Linux | because you call your mob a branden@debian.org | government. http://people.debian.org/~branden/ |
Attachment:
signature.asc
Description: Digital signature