Go to file
Simon Farnsworth 660f6ab549 Don't crash when asked if a client that has disconnected was local
ProcDRI2Dispatch uses LocalClient to determine if it's safe to respond
to a client that has made DRI2 requests which aren't sensible for
remote clients (anything but version). When the client has disappeared
mid-request stream (e.g. as a result of a kill -9, or a client-side
bug), LocalClient causes the X server to follow suit, as
((OsCommPtr)client->osPrivate)->trans_conn is NULL at this point.

The simple and obvious fix is to just return "not local" when
trans_conn is NULL, which fixes the crash I was seeing; however Keith
Packard pointed out that just checking trans_conn isn't enough;
quoting Keith:

"This looks almost right to me -- I reviewed the os code to see when
_XSERVTransClose is called (which is what frees the trans_conn data) and
found that every place which called that immediately set trans_conn to
NULL, except for the call in CloseDownFileDescriptor which is only
called from CloseDownConnection and which is immediately followed by
freeing the OsCommRec and setting client->osPrivate to NULL. So, I'd
suggest checking client->osPrivate in addition to the above check."

Signed-off-by: Simon Farnsworth <simon.farnsworth@onelan.com>
Reviewed-by: Keith Packard <keithp@keithp.com>
Signed-off-by: Keith Packard <keithp@keithp.com>
2010-06-22 11:42:33 -07:00
composite composite: fix freeing of old pixmap until after move/resize/cbw (bug 28345) 2010-06-22 11:41:20 -07:00
config config: Replace xstrdup with strdup in add_option() 2010-06-11 19:05:46 +07:00
damageext Clean up after removal of screen parameters from region macros. 2010-06-05 22:07:21 -07:00
dbe Remove unnecessary parentheses around return values in functions 2010-06-10 06:42:42 -07:00
dix dix: the default axis mode is Relative, not "0". 2010-06-16 11:16:15 +10:00
doc Rename region macros to eliminate screen argument 2010-06-05 18:59:00 -07:00
exa Merge remote branch 'dottedmag/for-keithp' 2010-06-11 10:08:13 -07:00
fb Record some additional library dependencies in xf86 modules 2010-06-10 19:01:22 -07:00
glx dri2: avoid crash with old dri drivers. 2010-06-22 11:40:15 -07:00
hw rotation: fix cursor and overlap of one pixel. 2010-06-22 11:38:30 -07:00
include Merge remote branch 'whot/for-keith' 2010-06-10 18:39:10 -07:00
m4 dolt: add Cygwin to supported platforms 2009-10-13 20:30:22 -07:00
mi mi: Remove unused overlay support 2010-06-20 05:36:22 +07:00
miext Fix a couple more possible errors with input-only windows 2010-06-10 19:15:28 -07:00
os Don't crash when asked if a client that has disconnected was local 2010-06-22 11:42:33 -07:00
randr rotation: fix cursor and overlap of one pixel. 2010-06-22 11:38:30 -07:00
record record: Register client private to prevent crash. 2010-06-18 13:54:13 -07:00
render Remove unnecessary parentheses around return values in functions 2010-06-10 06:42:42 -07:00
test xfree86: Match devices based on USB ID 2010-06-11 09:30:33 +10:00
Xext xv: Don't send port notify when SetPortAttribute fails 2010-06-21 19:03:20 -07:00
xfixes Remove unnecessary parentheses around return values in functions 2010-06-10 06:42:42 -07:00
Xi Merge remote branch 'whot/for-keith' 2010-06-10 18:39:10 -07:00
xkb Remove more superfluous if(p) checks around free(p) 2010-06-11 19:05:46 +07: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 config: declare xserver private dependencies in xorg-server.pc 2010-06-22 11:34:47 -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
fix-miregion Change region implementation names to eliminate the 'mi' prefix 2010-06-05 17:47:32 -07:00
fix-miregion-private Change region implementation names to eliminate the 'mi' prefix 2010-06-05 17:47:32 -07:00
fix-patch-whitespace Rename region macros to eliminate screen argument 2010-06-05 18:59:00 -07:00
fix-region Rename region macros to eliminate screen argument 2010-06-05 18:59:00 -07: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 config: declare xserver private dependencies in xorg-server.pc 2010-06-22 11:34:47 -07: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