Find a file
Kristian Høgsberg a847cc9bce 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>
(cherry picked from commit 6d7ba5e0fc)
2010-06-02 10:43:03 +10: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-09 11:49:27 +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-06-02 10:43:03 +10:00
doc Xserver(1) man page updates 2010-05-24 22:23:40 -07:00
exa Exa screen private has SavedSourceValidate, not SourceValidate 2010-04-30 19:30:04 +10:00
fb fb: fbFinishScreenInit: leaked_storage: Variable "(visuals|depths)" goes out of scope 2010-03-21 15:20:27 -07:00
glx GLX/DRI2: expose swap control extensions if DDX support is present 2010-05-21 13:55:32 +10:00
hw xfree86: fix multiple InputAttributes tag matching. 2010-05-25 16:55:43 +10:00
include DRI2: advertise lowest supported DRI2 protocol version 2010-05-21 13:55:27 +10:00
m4 dolt: add Cygwin to supported platforms 2009-10-13 20:30:22 -07:00
mi Device init: Don't crash when CreateGC fails. 2010-05-24 17:20:57 +10:00
miext rootless: Remove an unneeded comment 2010-05-02 20:02:53 -07:00
os Merge branch 'server-1.8-branch' of git://people.freedesktop.org/~jeremyhu/xserver into server-1.8-branch 2010-05-18 14:46:42 +10:00
randr Don't double-swap the RandR PropertyNotify event 2010-02-12 14:55:19 -08:00
record Re-enable RECORD extension. 2010-02-22 12:04:28 +10:00
render Check pixmap allocation return value when creating glyphs 2010-05-18 14:45:22 +10:00
test test/xi2: Initialize predefined atoms before XInputExtensionInit. 2010-05-18 14:44:58 +10:00
Xext Fix wrong bracket values when startOver = FALSE. 2010-05-18 14:43:40 +10:00
xfixes Make sure XFixes invisible cursor gets freed on server reset 2010-05-18 14:42:16 +10:00
Xi Xi: reset the known properties at the end of the server generation. 2010-05-18 14:42:23 +10:00
xkb xkb: Fix omissions in geometry initialization #27679 2010-05-01 07:36:32 +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 xserver 1.8.1.901 2010-06-02 09:27:33 +10: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-09 11:49:26 +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-09 11:49:27 +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