Go to file
Aaron Plattner c80c41767e os: Fix BigReq ignoring when another request is pending
Commit cf88363db0 fixed the handling of
BigReq requests that are way too large and handles the case where the
read() syscall returns a short read.  However, it neglected to handle
the case where it returns a long read, which happens when the client
has another request in the queue after the bogus large one.

Handle the long read case by subtracting the smaller of 'needed' and
'gotnow' from oci->ignoreBytes.  If needed < gotnow, simply subtract
the two, leaving gotnow equal to the number of extra bytes read.
Since the code immediately following the (oci->ignoreBytes > 0) block
tries to handle the next request, advance oci->bufptr immediately
instead of setting oci->lenLastReq and letting the next call to
ReadRequestFromClient do it.

Fixes the XTS pChangeKeyboardMapping-3 test.

         CASES TESTS  PASS UNSUP UNTST NOTIU  WARN   FIP  FAIL UNRES  UNIN ABORT
-Xproto    122   389   367     2    19     0     0     0     1     0     0     0
+Xproto    122   389   368     2    19     0     0     0     0     0     0     0

Signed-off-by: Aaron Plattner <aplattner@nvidia.com>
Reviewed-by: Adam Jackson <ajax@redhat.com>
Signed-off-by: Keith Packard <keithp@keithp.com>
2010-11-10 14:58:28 -08:00
composite composite: Move the backfill comment to a more appropriate indent level 2010-10-18 17:38:23 -04:00
config Fix udev population of Bluetooth input device product IDs 2010-09-01 15:04:37 +10:00
damageext Revert "Set DamageSetReportAfterOp to true for the damage extension" (#30260) 2010-10-20 16:49:14 -07:00
dbe miDbe window priv priv is pre-allocated, don't use dixSetPrivate (bug 28639) 2010-07-02 12:30:24 -04:00
dix dix: advance parent window pointer when no node is found 2010-10-27 08:08:24 +10:00
doc Introduce per-object per-screen privates. 2010-09-18 11:17:18 +02:00
exa EXA: Finish access to pixmap if it's prepared at destruction time. 2010-07-13 10:07:04 -07:00
fb Remove leftover fbSaveAreas & fbRestoreAreas defines from wfbrename.h 2010-10-13 09:16:51 -07:00
glx glx: Fix use after free in DrawableGone 2010-09-28 08:01:28 -07:00
hw x86emu: fix jump_near_IMM to handle DATA: flag correctly. 2010-11-10 14:56:57 -08:00
include fix a sign problem with valuator data. 2010-10-18 10:16:23 +10:00
m4 remove dolt 2010-09-30 17:44:59 -07:00
mi mi: Integer overflow for dashed lines longer than 46340. #31093 2010-11-10 14:55:21 -08:00
miext rootless: Delete dead remnants of rootless acceleration. 2010-09-13 15:58:08 -07:00
os os: Fix BigReq ignoring when another request is pending 2010-11-10 14:58:28 -08:00
randr randr: Remove mirandr 2010-10-18 17:38:23 -04:00
record record: Prevent a crash on recording client disconnect. 2010-06-22 11:43:36 -07:00
render render: Bounds check for nglyphs in ProcRenderAddGlyphs (#28801) 2010-08-19 18:00:18 -07:00
test test: input - set valuators mask for event to core conversion 2010-10-22 13:36:10 +10:00
Xext xserver: delete pervasively use of DISPATCH_PROC 2010-09-28 16:45:05 +03:00
xfixes Remove unnecessary parentheses around return values in functions 2010-06-10 06:42:42 -07:00
Xi Xi: reshuffle conditions for labeling a device as IsXExtensionKeyboard (#29046) 2010-10-29 08:28:57 +10:00
xkb xkb: always fill the symsPerKey array, regardless of client flags (#30527) 2010-10-20 08:01:54 +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 kdrive: Fix linking with tslib, with -Wl, --as-needed. #30600 2010-10-19 09:27:20 -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 remove dolt 2010-09-30 17:44:59 -07: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