Go to file
Keith Packard 41da295eb5 Trap SIGBUS to handle truncated shared memory segments
If a client passes a section of memory via file descriptor and then
subsequently truncates that file, the underlying pages will be freed
and the addresses invalidated. Subsequent accesses to the page will
fail with a SIGBUS error.

Trap that SIGBUS, figure out which segment was causing the error and
then allocate new pages to fill in for that region. Mark the offending
shared segment as invalid and free the resource ID so that the client
will be able to tell when subsequently attempting to use the segment.

Signed-off-by: Keith Packard <keithp@keithp.com>

v2: Use MAP_FIXED to simplify the recovery logic (Mark Kettenis)
v3: Also catch errors in ShmCreateSegment

Conflicts:
	include/dix-config.h.in
	include/xorg-config.h.in
2013-11-11 15:16:07 -08:00
Xext Trap SIGBUS to handle truncated shared memory segments 2013-11-11 15:16:07 -08:00
Xi Xi: fix logic error when calculating emulated motion events 2013-10-29 13:40:52 +10:00
composite damage: Simplify DamageUnregister 2013-09-10 14:28:35 -04:00
config xserver: enable InputClass option "GrabDevice" by default for non-seat0 seats (#69478) 2013-09-25 03:52:54 +10:00
damageext Merge remote-tracking branch 'ajax/xserver-next' 2013-10-04 13:50:04 -07:00
dbe dbe: Fold the window private private into the window private 2013-09-10 13:28:24 -04:00
dix Add a RegionDuplicate function 2013-10-31 16:58:16 -07:00
doc doc: Update documentation about Windows platforms support a bit 2012-10-29 12:21:14 +00:00
dri3 Disable DRI3 and sync fence FD functions if xshmfence isn't available 2013-11-04 18:53:36 -08:00
exa Skip damage calls if DamageCreate fails in exa functions 2013-10-14 17:56:44 -07:00
fb fb: Remove unused compatibility wrappers 2013-09-10 13:29:21 -04:00
glx glx: Lie about GLX_Y_INVERTED_EXT 2013-10-31 17:05:14 -07:00
hw ARM64: Add support for aarch64 2013-11-06 16:41:49 -08:00
include Trap SIGBUS to handle truncated shared memory segments 2013-11-11 15:16:07 -08:00
m4 XORG_TLS: Pick the first option that works (ie: prefer __thread) 2013-02-14 09:20:47 -08:00
man Correct description of -displayfd option in man page. 2012-10-11 12:53:57 +01:00
mi present: Add Present extension 2013-10-31 16:59:18 -07:00
miext Disable DRI3 and sync fence FD functions if xshmfence isn't available 2013-11-04 18:53:36 -08:00
os Trap SIGBUS to handle truncated shared memory segments 2013-11-11 15:16:07 -08:00
present present: Add Present extension 2013-10-31 16:59:18 -07:00
pseudoramiX Move pseudoramiX code where it can be shared between Xwin and Xquartz 2013-08-30 12:52:30 +01:00
randr randr: deliver Output and Crtc events of attached output providers. 2013-10-30 08:09:31 -07:00
record Move extension initialisation prototypes into extinit.h 2012-07-09 23:06:41 -07:00
render Abstract cursor refcounting 2013-05-15 19:17:57 +10:00
test dri3: Add DRI3 extension 2013-10-31 16:58:30 -07:00
xfixes Abstract cursor refcounting 2013-05-15 19:17:57 +10:00
xkb xkb: don't call atoi(NULL) when parsing argv 2013-07-02 15:12:29 +10:00
.dir-locals.el Add .dir-locals.el 2013-08-17 12:17:36 +02:00
.gitignore doc: relocate xserver.ent in the package root directory 2011-05-14 11:22:26 -07:00
COPYING Shadow: Switch the Amiga/Atari bitplane code to the canonical X.Org license 2013-05-14 14:41:00 -07:00
Makefile.am Add dri3 and present directorys to distribution 2013-11-01 01:45:22 -07:00
README packaging: provide a default README file #24206 2010-01-27 14:00:17 -08:00
autogen.sh autogen.sh: Honor NOCONFIGURE=1 2012-10-19 13:12:33 +10:00
configure.ac Trap SIGBUS to handle truncated shared memory segments 2013-11-11 15:16:07 -08:00
devbook.am devbook.am: maintenance update from docbook.am 2011-09-21 14:07:52 -07:00
docbook.am docbook.am: embed css styles inside the HTML HEAD element 2011-09-21 14:07:49 -07: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
manpages.am Xdmx.man: Show actual configured XKB defaults instead of old hardcoded values 2011-06-21 17:54:14 -07:00
xorg-server.m4 macros: clarify documentation 2012-11-05 13:24:57 -06:00
xorg-server.pc.in xfree86: link modules against Xorg symbols on Cygwin 2012-04-05 21:57:07 -05:00
xserver.ent.in doc: relocate xserver.ent in the package root directory 2011-05-14 11:22:26 -07:00

README

					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