CVS Update: xc (branch: trunk)

Thomas Winischhofer thomas at winischhofer.net
Wed Oct 12 06:56:52 PDT 2005


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Benjamin Herrenschmidt wrote:
> CVSROOT:	/cvs/xorg
> Module name:	xc
> Changes by:	benh at gabe.freedesktop.org	05/10/11 16:11:37
> 
> Log message:
>   	* programs/Xserver/hw/xfree86/exa/exa.h:
>   	* programs/Xserver/hw/xfree86/exa/exaoffscreen.c:
>   	(ExaOffscreenValidate), (exaOffscreenAlloc), (exaOffscreenFree),
>   	(exaOffscreenInit):
>   	Fix a couple of bugs in the offscreen allocator. One mostly harmless
>   	was causing our search loop for evictable blocks to possibly skip a
>   	good candiate, and another was the allocator would occasionally use
>   	area->offset as if it was the base of the pixmap, while for a pixmap
>   	that is not in available state, it is not. This caused some funny
>   	miscalculation leading to overlapping pixmaps and accesses beyond the
>   	end of the framebuffer. To make things cleared, I renamed save_offset
>   	to base_offset, made sure it's the one used everywhere in the
>   	allocator, and only align "offset" for the client at the end of
>   	exaOffscreenAlloc().
> 

Yeah, right, except that exaOffscreenInit now allocates area without
clearing it, calculates

area->size = card.memorySize - area->offset

with an uninitialized area->offset and thereby writes arbitrary values
to area->size.

No, no, don't worry. I won't rant about obviously untested stuff in CVS :)


- --
Thomas Winischhofer
Vienna/Austria
thomas AT winischhofer DOT net	       *** http://www.winischhofer.net

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.1 (GNU/Linux)
Comment: Using GnuPG with Thunderbird - http://enigmail.mozdev.org

iD8DBQFDTRYkzydIRAktyUcRAqzNAJ4sDcc2qe12+ccQhnj22687QaaFdwCfTOJK
kugUG3LZqwHB/01wRaApFIs=
=zPuv
-----END PGP SIGNATURE-----



More information about the xorg mailing list