xserver-multidpi/dix
Jamey Sharp 2d7eb4a19b Pre-validate ChangeGC XIDs.
In order to execute a wire-level ChangeGC request, we need to look up
the resources named by any XIDs in the value-list. Various places in the
server already have pointers to the resources they want to set into the
GC, though, so over time the interface has evolved to accept either XIDs
or pointers, with several different function call signatures used in
different eras.

This patch makes the existing code require pointers to resources rather
than XIDs, and adds a simple wrapper that looks up any XIDs. The old
dixChangeGC API is preserved by delegating to whichever implementation
is appropriate.

This affects error-handling: If any of the XIDs are invalid, then the GC
is unchanged, and its ChangeGC callback is not invoked. This change is
allowed by the protocol spec, which says, "The order in which components
are verified and altered is server-dependent. If an error is generated,
a subset of the components may have been altered."

Signed-off-by: Jamey Sharp <jamey@minilop.net>
Reviewed-by: Keith Packard <keithp@keithp.com>
2010-05-13 17:14:07 -07:00
..
.gitignore .gitignore: use common defaults with custom section #24239 2009-11-11 21:40:20 -08:00
atom.c Misc coding style cleanup 2010-05-13 06:16:48 +07:00
buildatoms XFree86 4.3.0.1 2003-11-14 16:49:22 +00:00
BuiltInAtoms R6.6 is the Xorg base-line 2003-11-14 15:54:54 +00:00
colormap.c Replace X-allocation functions with their C89 counterparts 2010-05-13 00:22:37 +07:00
cursor.c Replace X-allocation functions with their C89 counterparts 2010-05-13 00:22:37 +07:00
deprecated.c dix: remove dixLookupResource - we don't have any users left. 2009-09-07 10:51:16 +10:00
devices.c Replace X-allocation functions with their C89 counterparts 2010-05-13 00:22:37 +07:00
dispatch.c SetFontPath: set client->errorValue on failure. 2010-05-12 12:08:38 -07:00
dispatch.h Remove RCS tags. Fix Xprint makefile braindamage. 2006-07-21 17:56:00 -04:00
dixfonts.c dixChangeGC callers: Use ChangeGCVal instead of XID almost everywhere. 2010-05-13 17:13:48 -07:00
dixutils.c Replace X-allocation functions with their C89 counterparts 2010-05-13 00:22:37 +07:00
enterleave.c dix: call SetFocusOut and LeaveWindow when disabling a device. 2009-08-03 10:11:48 +10:00
enterleave.h dix: call SetFocusOut and LeaveWindow when disabling a device. 2009-08-03 10:11:48 +10:00
eventconvert.c Replace X-allocation functions with their C89 counterparts 2010-05-13 00:22:37 +07:00
events.c Replace X-allocation functions with their C89 counterparts 2010-05-13 00:22:37 +07:00
extension.c Replace X-allocation functions with their C89 counterparts 2010-05-13 00:22:37 +07:00
ffs.c Rework symbol visibility for easier maintenance 2008-12-03 05:43:34 -02:00
gc.c Pre-validate ChangeGC XIDs. 2010-05-13 17:14:07 -07:00
getevents.c Replace X-allocation functions with their C89 counterparts 2010-05-13 00:22:37 +07:00
globals.c DPMS: Remove the defaultDPMS* variables 2009-04-03 18:22:20 -04:00
glyphcurs.c Replace X-allocation functions with their C89 counterparts 2010-05-13 00:22:37 +07:00
grabs.c Replace X-allocation functions with their C89 counterparts 2010-05-13 00:22:37 +07:00
initatoms.c Rework symbol visibility for easier maintenance 2008-12-03 05:43:34 -02:00
inpututils.c Replace X-allocation functions with their C89 counterparts 2010-05-13 00:22:37 +07:00
main.c Replace X-allocation functions with their C89 counterparts 2010-05-13 00:22:37 +07:00
Makefile.am dtrace: Add Xserver-dtrace.h to CLEANFILES 2009-12-15 16:51:48 -08:00
pixmap.c Replace X-allocation functions with their C89 counterparts 2010-05-13 00:22:37 +07:00
privates.c Replace X-allocation functions with their C89 counterparts 2010-05-13 00:22:37 +07:00
property.c Replace X-allocation functions with their C89 counterparts 2010-05-13 00:22:37 +07:00
protocol.txt Add DRI2 requests to protocol.txt 2009-08-28 23:29:05 -04:00
ptrveloc.c Replace X-allocation functions with their C89 counterparts 2010-05-13 00:22:37 +07:00
registry.c Replace X-allocation functions with their C89 counterparts 2010-05-13 00:22:37 +07:00
resource.c Replace X-allocation functions with their C89 counterparts 2010-05-13 00:22:37 +07:00
selection.c Replace X-allocation functions with their C89 counterparts 2010-05-13 00:22:37 +07:00
swaprep.c Replace X-allocation functions with their C89 counterparts 2010-05-13 00:22:37 +07:00
swapreq.c Remove #define NEED_EVENTS and NEED_REPLIES 2008-12-12 11:43:32 +10:00
tables.c Remove #define NEED_EVENTS and NEED_REPLIES 2008-12-12 11:43:32 +10:00
window.c dixChangeGC callers: Use ChangeGCVal instead of XID almost everywhere. 2010-05-13 17:13:48 -07:00
Xserver-dtrace.h.in Update Sun license notices to current X.Org standard form 2009-12-16 17:11:35 -08:00
Xserver.d Update Sun license notices to current X.Org standard form 2009-12-16 17:11:35 -08:00