Go to file
Kristian Høgsberg 6d7ba5e0fc dix: Update element count in FreeResource*()
FreeResource() keeps clientTable[cid].elements up to date with the
number of resources allocated to the client.  The other free
resource functions (FreeResourceByType(),
FreeClientNeverRetainResources() and FreeClientResources()) don't
maintain this invariant.

Typically, the only consequence is that the element count is too high
and we end up allocating the hash table bigger than necessary.  However,
FreeResource() also relies on the element count to restart the search if
the list of resources has been changed during a resource destruction
callback.  Since FreeResourceByType() doesn't update the count, if we call
that from a resource destruction callback from FreeResource(), the
loop isn't restarted and we end up following an invalid next pointer.

Furthermore, LookupClientResourceComplex() and
FreeClientNeverRetainResources() don't use the element count to detect
if a callback deleted a resource and may end up following an invalid
next pointer if the resource system is called into recursively.

Signed-off-by: Kristian Høgsberg <krh@bitplanet.net>
Reviewed-by: Keith Packard <keithp@keithp.com>
2010-05-11 11:01:34 -04:00
composite os: Prevent core dump from being truncated. 2010-02-17 23:20:52 -08:00
config Move 10-evdev.conf to system config dir $datadir/X11/xorg.conf.d 2010-04-08 15:21:01 +10:00
damageext Add type name argument to CreateNewResourceType 2009-12-18 17:44:12 -08:00
dbe Add type name argument to CreateNewResourceType 2009-12-18 17:44:12 -08:00
dix dix: Update element count in FreeResource*() 2010-05-11 11:01:34 -04:00
doc Fix .man.N targets for AM_SILENT_RULES 2010-03-22 00:45:55 -05:00
exa Exa screen private has SavedSourceValidate, not SourceValidate 2010-04-26 11:04:38 -07:00
fb fb: track screens' installed colormaps as screen privates. 2010-04-23 15:32:19 +03:00
glx Introduce dixLookupFontable for "FONT or GC" parameters. 2010-05-07 21:56:36 -07:00
hw xfree86: dga needs to use the master keyboard state (#27573) 2010-05-11 13:33:19 +10:00
include Introduce dixLookupFontable for "FONT or GC" parameters. 2010-05-07 21:56:36 -07:00
m4 dolt: add Cygwin to supported platforms 2009-10-13 20:30:22 -07:00
mi miPolyPoint bugfix: Check memory allocation before changing the GC. 2010-05-10 11:16:33 -07:00
miext rootless: Remove an unneeded comment 2010-05-02 15:27:29 -07:00
os Constify function prototypes in auth & xdmcp code 2010-05-07 12:22:58 -07:00
randr unifdef -B -DRENDER to always include RENDER code 2010-04-19 09:26:10 -07:00
record Re-enable RECORD extension. 2010-02-22 12:04:28 +10:00
render Return BadPicture, not BadPixmap, if alpha-map is invalid. 2010-05-07 21:58:02 -07:00
test Merge remote branch 'whot/for-keith' 2010-04-30 12:33:00 -07:00
Xext Fix wrong bracket values when startOver = FALSE. 2010-05-10 15:40:08 -07:00
xfixes VERIFY_PICTURE always returns BadPicture. Don't bother specifying. 2010-05-07 21:57:19 -07:00
Xi Xi: reset the known properties at the end of the server generation. 2010-05-07 12:16:43 -07:00
xkb xkb: Fix omissions in geometry initialization #27679 2010-04-27 15:50:26 +10:00
.gitignore .gitignore: use common defaults with custom section #24239 2009-11-11 21:40:20 -08:00
autogen.sh autogen.sh: Pass --force to autoreconf 2008-07-22 16:55:26 +03:00
configure.ac Merge remote branch 'yselkowitz/master' 2010-04-30 12:29:52 -07:00
COPYING Update Sun license notices to current X.Org standard form 2009-12-16 17:11:35 -08:00
cpprules.in xfree86: Set a saner search path for xorg.conf.d 2010-04-08 15:21:01 +10:00
Makefile.am Fix relink targets for silent rules 2010-03-22 00:45:52 -05:00
README packaging: provide a default README file #24206 2010-01-27 14:00:17 -08:00
xorg-server.m4 macros: use PKG_CONFIG variable rather than executable name 2010-01-07 12:57:23 -08:00
xorg-server.pc.in xfree86: Search for a system xorg.conf.d 2010-04-08 15:21:01 +10:00

					X Server

The X server accepts requests from client applications to create windows,
which are (normally rectangular) "virtual screens" that the client program
can draw into.

Windows are then composed on the actual screen by the X server
(or by a separate composite manager) as directed by the window manager,
which usually communicates with the user via graphical controls such as buttons
and draggable titlebars and borders.

For a comprehensive overview of X Server and X Window System, consult the
following article:
http://en.wikipedia.org/wiki/X_server

All questions regarding this software should be directed at the
Xorg mailing list:

        http://lists.freedesktop.org/mailman/listinfo/xorg

Please submit bug reports to the Xorg bugzilla:

        https://bugs.freedesktop.org/enter_bug.cgi?product=xorg

The master development code repository can be found at:

        git://anongit.freedesktop.org/git/xorg/xserver

        http://cgit.freedesktop.org/xorg/xserver

For patch submission instructions, see:

	http://www.x.org/wiki/Development/Documentation/SubmittingPatches

For more information on the git code manager, see:

        http://wiki.x.org/wiki/GitPage