Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 20 Feb 2009 21:06:55 +1100
From:      Peter Jeremy <peterjeremy@optushome.com.au>
To:        Robert Noland <rnoland@freebsd.org>
Cc:        freebsd-x11 <freebsd-x11@freebsd.org>
Subject:   Re: [CFT] xf86-video-ati-6.10.99.0
Message-ID:  <20090220100655.GA56539@server.vk2pj.dyndns.org>
In-Reply-To: <20090216190037.GA41111@server.vk2pj.dyndns.org>
References:  <1234248221.1524.31.camel@ferret.2hip.net> <20090216190037.GA41111@server.vk2pj.dyndns.org>

next in thread | previous in thread | raw e-mail | index | archive | help

--G4iJoqBmSsgzjUCe
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable

On 2009-Feb-17 06:00:37 +1100, Peter Jeremy <peter@server.vk2pj.dyndns.org>=
 wrote:
>On 2009-Feb-10 01:43:41 -0500, Robert Noland <rnoland@freebsd.org> wrote:
>>This patch is for the 6.11.0rc version of the ati driver driver.
>>
>>http://people.freebsd.org/~rnoland/xf86-video-ati-6.10.99.0.patch
>
>Summary: Still broken: Exiting Xserver core-dumps and doesn't restore
>VTY video (though keyboard is restored).

I rebuilt the Xserver related ports with debugging enabled and it
turns out that this is a bug in xorg-server-1.5.3 rather than
xf86-video-ati.  The backtrace is:
(gdb) where
=2E..
#9  <signal handler called>
#10 DeliverPropertyEvent (pWin=3D0x5a5a5a5a5a5a5a5a, value=3D0x7fffffffe990=
) at rrproperty.c:34
#11 0x000000000042f0a3 in TraverseTree (pWin=3D0x802911000, func=3D0x511780=
 <DeliverPropertyEvent>, data=3D0x7fffffffe990) at window.c:225
#12 0x000000000051173a in RRDeleteAllOutputProperties (output=3D0x8029ff1c0=
) at rrproperty.c:80
#13 0x0000000000510131 in RROutputDestroyResource (value=3DVariable "value"=
 is not available.) at rroutput.c:410
#14 0x000000000042e6d2 in FreeClientResources (client=3D0x801821140) at res=
ource.c:807
#15 0x000000000042e7af in FreeAllResources () at resource.c:824
#16 0x000000000042c423 in main (argc=3D4, argv=3D0x7fffffffeb58, envp=3DVar=
iable "envp" is not available.

This fairly clearly shows DeliverPropertyEvent() is being called
with a garbage window pointer - specifically it's a use-after-free
bug: The root window _Window is being freed too early.  I'm still
digging through the code to work out where/why.

--=20
Peter Jeremy

--G4iJoqBmSsgzjUCe
Content-Type: application/pgp-signature
Content-Disposition: inline

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.10 (FreeBSD)

iEYEARECAAYFAkmegL8ACgkQ/opHv/APuIcZ7gCfaTYYAQOg3o5OEVC0O5hQqPUt
RYYAoLL6KP45zyW4wBwcebY/aCHIPlr4
=KtF5
-----END PGP SIGNATURE-----

--G4iJoqBmSsgzjUCe--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20090220100655.GA56539>