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