xserver: Branch 'XACE-SELINUX' - 32 commits
Eamon Walsh
ewalsh at kemper.freedesktop.org
Wed Dec 20 22:23:29 EET 2006
GL/glx/glxcmds.c | 18 -
XTrap/xtrapdi.c | 4
Xext/XSELinuxConfig | 4
Xext/appgroup.c | 19 -
Xext/cup.c | 2
Xext/mbuf.c | 41 +-
Xext/panoramiX.c | 27 +
Xext/panoramiXprocs.c | 230 ++++++++-------
Xext/saver.c | 46 +--
Xext/security.c | 12
Xext/shape.c | 84 ++---
Xext/shm.c | 52 ++-
Xext/sync.c | 36 +-
Xext/xf86bigfont.c | 5
Xext/xprint.c | 38 +-
Xext/xselinux.c | 133 ++++----
Xext/xtest.c | 19 -
Xext/xvdisp.c | 81 ++---
Xi/chgprop.c | 9
Xi/exevents.c | 22 -
Xi/getprop.c | 9
Xi/getselev.c | 8
Xi/selectev.c | 8
Xi/ungrdevb.c | 7
Xi/ungrdevk.c | 7
composite/compwindow.c | 6
config/config.c | 1
configure.ac | 2
damageext/damageext.c | 16 -
dbe/dbe.c | 32 +-
dix/colormap.c | 4
dix/cursor.c | 4
dix/devices.c | 8
dix/dispatch.c | 445 +++++++++++++++---------------
dix/dixfonts.c | 8
dix/dixutils.c | 195 +++++++------
dix/events.c | 125 ++++----
dix/gc.c | 8
dix/property.c | 55 +--
dix/resource.c | 4
dix/window.c | 10
doc/Xserver.man.pre | 8
exa/exa.c | 11
exa/exa_accel.c | 47 +--
exa/exa_render.c | 17 -
hw/darwin/quartz/applewm.c | 14
hw/darwin/quartz/pseudoramiX.c | 27 +
hw/darwin/quartz/xpr/appledri.c | 22 -
hw/dmx/dmx.c | 18 -
hw/dmx/dmxextension.c | 133 ++++++++
hw/dmx/dmxinit.c | 2
hw/dmx/dmxpict.c | 107 ++++---
hw/dmx/dmxpict.h | 2
hw/dmx/glxProxy/glxcmds.c | 112 +++----
hw/vfb/Makefile.am | 1
hw/xfree86/doc/man/Xorg.man.pre | 60 +---
hw/xfree86/dri/xf86dri.c | 35 +-
hw/xfree86/int10/generic.c | 2
hw/xfree86/loader/dixsym.c | 12
hw/xfree86/os-support/linux/int10/linux.c | 3
hw/xnest/Makefile.am | 1
hw/xprint/Makefile.am | 3
hw/xwin/winclipboardwrappers.c | 8
hw/xwin/winwindowswm.c | 21 -
include/dix.h | 188 ++----------
include/pixmap.h | 10
include/resource.h | 9
os/access.c | 2
os/utils.c | 8
randr/randr.c | 6
randr/randrstr.h | 12
randr/rrcrtc.c | 24 +
randr/rrdispatch.c | 9
randr/rrinfo.c | 2
randr/rrmode.c | 23 +
randr/rroutput.c | 22 -
randr/rrproperty.c | 14
randr/rrscreen.c | 185 +++++++-----
randr/rrxinerama.c | 21 -
render/picture.c | 4
render/render.c | 137 ++++-----
xfixes/cursor.c | 18 -
xfixes/region.c | 55 ++-
xfixes/saveset.c | 7
xfixes/select.c | 8
85 files changed, 1774 insertions(+), 1500 deletions(-)
New commits:
diff-tree cd71e861830081807e5b93ae89c73c17986c6330 (from a81dbaae0597492f0245080c6f5af7158e05e2d0)
Author: Eamon Walsh <ewalsh at tycho.nsa.gov>
Date: Wed Dec 20 13:45:24 2006 -0500
Naming change: Security*Access -> Dix*Access.
Clarify some error message strings.
diff --git a/Xext/xselinux.c b/Xext/xselinux.c
index 41d01e4..9b5ee10 100644
--- a/Xext/xselinux.c
+++ b/Xext/xselinux.c
@@ -403,18 +403,18 @@ AssignServerState(void)
/* get a SID from the context */
if (avc_context_to_sid(basectx, &state->sid) < 0)
- FatalError("Client %d: couldn't get security ID for client\n", 0);
+ FatalError("Client %d: context_to_sid(%s) failed\n", 0, basectx);
/* get contexts and then SIDs for each resource type */
for (i=0; i<NRES; i++) {
if (security_compute_create(basectx, basectx, sClasses[i],
&objctx) < 0)
- FatalError("Client %d: couldn't get context for class %x\n", 0,
- sClasses[i]);
+ FatalError("Client %d: compute_create(base=%s, cls=%d) failed\n",
+ 0, basectx, sClasses[i]);
if (avc_context_to_sid(objctx, &state->rsid[i]) < 0)
- FatalError("Client %d: couldn't get SID for class %x\n", 0,
- sClasses[i]);
+ FatalError("Client %d: context_to_sid(%s) failed\n",
+ 0, objctx);
freecon(objctx);
}
@@ -455,19 +455,19 @@ AssignClientState(ClientPtr client)
/* get a SID from the context */
if (avc_context_to_sid(basectx, &state->sid) < 0)
- FatalError("Client %d: couldn't get security ID for client\n",
- client->index);
+ FatalError("Client %d: context_to_sid(%s) failed\n",
+ client->index, basectx);
/* get contexts and then SIDs for each resource type */
for (i=0; i<NRES; i++) {
if (security_compute_create(basectx, basectx, sClasses[i],
&objctx) < 0)
- FatalError("Client %d: couldn't get context for class %x\n",
- client->index, sClasses[i]);
+ FatalError("Client %d: compute_create(base=%s, cls=%d) failed\n",
+ client->index, basectx, sClasses[i]);
if (avc_context_to_sid(objctx, &state->rsid[i]) < 0)
- FatalError("Client %d: couldn't get SID for class %x\n",
- client->index, sClasses[i]);
+ FatalError("Client %d: context_to_sid(%s) failed\n",
+ client->index, objctx);
freecon(objctx);
}
@@ -1078,11 +1078,11 @@ CALLBACK(XSELinuxProperty)
if (!propsid)
return;
- if (rec->access_mode & SecurityReadAccess)
+ if (rec->access_mode & DixReadAccess)
perm |= PROPERTY__READ;
- if (rec->access_mode & SecurityWriteAccess)
+ if (rec->access_mode & DixWriteAccess)
perm |= PROPERTY__WRITE;
- if (rec->access_mode & SecurityDestroyAccess)
+ if (rec->access_mode & DixDestroyAccess)
perm |= PROPERTY__FREE;
if (!rec->access_mode)
perm = PROPERTY__READ | PROPERTY__WRITE | PROPERTY__FREE;
@@ -1176,7 +1176,7 @@ CALLBACK(XSELinuxDrawable)
CALLBACK(XSELinuxHostlist)
{
XaceHostlistAccessRec *rec = (XaceHostlistAccessRec*)calldata;
- access_vector_t perm = (rec->access_mode == SecurityReadAccess) ?
+ access_vector_t perm = (rec->access_mode == DixReadAccess) ?
XSERVER__GETHOSTLIST : XSERVER__SETHOSTLIST;
if (!ServerPerm(rec->client, SECCLASS_XSERVER, perm))
diff-tree a81dbaae0597492f0245080c6f5af7158e05e2d0 (from parents)
Merge: fb6d676de5aa606d943715437a12a68d9a41f386 d442998e39611be6805ea261f2286a2fd00f49b1
Author: Eamon Walsh <ewalsh at tycho.nsa.gov>
Date: Tue Dec 19 16:11:19 2006 -0500
Merge branch 'master' into my-XACE-SELINUX
diff-tree d442998e39611be6805ea261f2286a2fd00f49b1 (from 228b9f77696190e47d4c96d6e0809bf645751557)
Author: Eric Anholt <eric at anholt.net>
Date: Fri Dec 8 13:35:36 2006 -0800
Only do the _POSIX_C_SOURCE hackery on linux where it's required.
On other OSes, the nasty hack was resulting in prototypes being hidden, so just
don't do it.
diff --git a/os/utils.c b/os/utils.c
index 9824501..82ec704 100644
--- a/os/utils.c
+++ b/os/utils.c
@@ -53,12 +53,11 @@ OR PERFORMANCE OF THIS SOFTWARE.
#include <dix-config.h>
#endif
+#ifndef __linux__
+#include <time.h>
+#else
/* The world's most shocking hack, to ensure we get clock_gettime() and
* CLOCK_MONOTONIC. */
-#ifdef sun /* Needed to tell Solaris headers not to restrict to */
-#define __EXTENSIONS__ /* only the functions defined in POSIX 199309. */
-#endif
-
#ifdef _POSIX_C_SOURCE
#define _SAVED_POSIX_C_SOURCE _POSIX_C_SOURCE
#undef _POSIX_C_SOURCE
@@ -69,6 +68,7 @@ OR PERFORMANCE OF THIS SOFTWARE.
#ifdef _SAVED_POSIX_C_SOURCE
#define _POSIX_C_SOURCE _SAVED_POSIX_C_SOURCE
#endif
+#endif /* __linux__ */
#ifdef __CYGWIN__
#include <stdlib.h>
diff-tree 228b9f77696190e47d4c96d6e0809bf645751557 (from fdcc22ca1704d3519156c66804528c21b04fea65)
Author: Eric Anholt <eric at anholt.net>
Date: Fri Dec 8 13:32:22 2006 -0800
Include sys/select.h to get FD_ISSET.
diff --git a/config/config.c b/config/config.c
index 523327d..76191ab 100644
--- a/config/config.c
+++ b/config/config.c
@@ -29,6 +29,7 @@
#define DBUS_API_SUBJECT_TO_CHANGE
#include <dbus/dbus.h>
#include <string.h>
+#include <sys/select.h>
#include <X11/X.h>
diff-tree fdcc22ca1704d3519156c66804528c21b04fea65 (from 67c2a86e59e915d9a5681e9d233478cfea3e51ed)
Author: Michel Dänzer <michel at tungstengraphics.com>
Date: Tue Dec 19 16:11:17 2006 +0100
exaCopyNtoN: Fix usage of 'dx' and 'dy' instead of 'reverse' and 'upsidedown'.
diff --git a/exa/exa_accel.c b/exa/exa_accel.c
index efae6db..098b27c 100644
--- a/exa/exa_accel.c
+++ b/exa/exa_accel.c
@@ -401,7 +401,8 @@ exaCopyNtoN (DrawablePtr pSrcDrawable
}
/* Mixed directions must be handled specially if the card is lame */
- if (pExaScr->info->flags & EXA_TWO_BITBLT_DIRECTIONS && (dx*dy) < 0) {
+ if (pExaScr->info->flags & EXA_TWO_BITBLT_DIRECTIONS &&
+ reverse != upsidedown) {
if (!exaCopyNtoNTwoDir(pSrcDrawable, pDstDrawable, pGC, pbox, nbox,
dx, dy))
goto fallback;
@@ -411,7 +412,7 @@ exaCopyNtoN (DrawablePtr pSrcDrawable
if ((pSrcPixmap = exaGetOffscreenPixmap (pSrcDrawable, &src_off_x, &src_off_y)) &&
(pDstPixmap = exaGetOffscreenPixmap (pDstDrawable, &dst_off_x, &dst_off_y)) &&
(*pExaScr->info->PrepareCopy) (pSrcPixmap, pDstPixmap,
- dx, dy,
+ reverse ? -1 : 1, upsidedown ? -1 : 1,
pGC ? pGC->alu : GXcopy,
pGC ? pGC->planemask : FB_ALLONES))
{
diff-tree 67c2a86e59e915d9a5681e9d233478cfea3e51ed (from 6b1e354dbb6e8ed9f2c654bbe7f8bbf241843d1c)
Author: Michel Dänzer <michel at tungstengraphics.com>
Date: Tue Dec 19 15:44:18 2006 +0100
EXA: Compare backing pixmaps instead of drawables against driver limits.
The driver operations are always contained within the backing pixmaps, it
doesn't matter if the drawables are bigger.
diff --git a/exa/exa_accel.c b/exa/exa_accel.c
index bc77a40..efae6db 100644
--- a/exa/exa_accel.c
+++ b/exa/exa_accel.c
@@ -49,12 +49,12 @@ exaFillSpans(DrawablePtr pDrawable, GCPt
pixmaps[0].as_dst = TRUE;
pixmaps[0].as_src = FALSE;
- pixmaps[0].pPix = exaGetDrawablePixmap (pDrawable);
+ pixmaps[0].pPix = pPixmap = exaGetDrawablePixmap (pDrawable);
if (pExaScr->swappedOut ||
pGC->fillStyle != FillSolid ||
- pDrawable->width > pExaScr->info->maxX ||
- pDrawable->height > pExaScr->info->maxY)
+ pPixmap->drawable.width > pExaScr->info->maxX ||
+ pPixmap->drawable.height > pExaScr->info->maxY)
{
exaDoMigration (pixmaps, 1, FALSE);
ExaCheckFillSpans (pDrawable, pGC, n, ppt, pwidth, fSorted);
@@ -380,19 +380,19 @@ exaCopyNtoN (DrawablePtr pSrcDrawable
pixmaps[0].as_dst = TRUE;
pixmaps[0].as_src = FALSE;
- pixmaps[0].pPix = exaGetDrawablePixmap (pDstDrawable);
+ pixmaps[0].pPix = pDstPixmap = exaGetDrawablePixmap (pDstDrawable);
pixmaps[1].as_dst = FALSE;
pixmaps[1].as_src = TRUE;
- pixmaps[1].pPix = exaGetDrawablePixmap (pSrcDrawable);
+ pixmaps[1].pPix = pSrcPixmap = exaGetDrawablePixmap (pSrcDrawable);
/* Respect maxX/maxY in a trivial way: don't set up drawing when we might
* violate the limits. The proper solution would be a temporary pixmap
* adjusted so that the drawing happened within limits.
*/
- if (pSrcDrawable->width > pExaScr->info->maxX ||
- pSrcDrawable->height > pExaScr->info->maxY ||
- pDstDrawable->width > pExaScr->info->maxX ||
- pDstDrawable->height > pExaScr->info->maxY)
+ if (pSrcPixmap->drawable.width > pExaScr->info->maxX ||
+ pSrcPixmap->drawable.height > pExaScr->info->maxY ||
+ pDstPixmap->drawable.width > pExaScr->info->maxX ||
+ pDstPixmap->drawable.height > pExaScr->info->maxY)
{
exaDoMigration (pixmaps, 2, FALSE);
goto fallback;
@@ -621,12 +621,12 @@ exaPolyFillRect(DrawablePtr pDrawable,
pixmaps[0].as_dst = TRUE;
pixmaps[0].as_src = FALSE;
- pixmaps[0].pPix = exaGetDrawablePixmap (pDrawable);
+ pixmaps[0].pPix = pPixmap = exaGetDrawablePixmap (pDrawable);
if (pExaScr->swappedOut ||
pGC->fillStyle != FillSolid ||
- pDrawable->width > pExaScr->info->maxX ||
- pDrawable->height > pExaScr->info->maxY)
+ pPixmap->drawable.width > pExaScr->info->maxX ||
+ pPixmap->drawable.height > pExaScr->info->maxY)
{
exaDoMigration (pixmaps, 1, FALSE);
ExaCheckPolyFillRect (pDrawable, pGC, nrect, prect);
@@ -738,11 +738,11 @@ exaSolidBoxClipped (DrawablePtr pDrawabl
pixmaps[0].as_dst = TRUE;
pixmaps[0].as_src = FALSE;
- pixmaps[0].pPix = exaGetDrawablePixmap (pDrawable);
+ pixmaps[0].pPix = pPixmap = exaGetDrawablePixmap (pDrawable);
if (pExaScr->swappedOut ||
- pDrawable->width > pExaScr->info->maxX ||
- pDrawable->height > pExaScr->info->maxY)
+ pPixmap->drawable.width > pExaScr->info->maxX ||
+ pPixmap->drawable.height > pExaScr->info->maxY)
{
exaDoMigration (pixmaps, 1, FALSE);
goto fallback;
@@ -997,10 +997,10 @@ exaFillRegionSolid (DrawablePtr pDrawabl
pixmaps[0].as_dst = TRUE;
pixmaps[0].as_src = FALSE;
- pixmaps[0].pPix = exaGetDrawablePixmap (pDrawable);
+ pixmaps[0].pPix = pPixmap = exaGetDrawablePixmap (pDrawable);
- if (pDrawable->width > pExaScr->info->maxX ||
- pDrawable->height > pExaScr->info->maxY)
+ if (pPixmap->drawable.width > pExaScr->info->maxX ||
+ pPixmap->drawable.height > pExaScr->info->maxY)
{
exaDoMigration (pixmaps, 1, FALSE);
goto fallback;
@@ -1064,13 +1064,13 @@ exaFillRegionTiled (DrawablePtr pDrawabl
pixmaps[0].as_dst = TRUE;
pixmaps[0].as_src = FALSE;
- pixmaps[0].pPix = exaGetDrawablePixmap (pDrawable);
+ pixmaps[0].pPix = pPixmap = exaGetDrawablePixmap (pDrawable);
pixmaps[1].as_dst = FALSE;
pixmaps[1].as_src = TRUE;
pixmaps[1].pPix = pTile;
- if (pDrawable->width > pExaScr->info->maxX ||
- pDrawable->height > pExaScr->info->maxY ||
+ if (pPixmap->drawable.width > pExaScr->info->maxX ||
+ pPixmap->drawable.height > pExaScr->info->maxY ||
tileWidth > pExaScr->info->maxX ||
tileHeight > pExaScr->info->maxY)
{
diff --git a/exa/exa_render.c b/exa/exa_render.c
index 9affb9f..fd3d87f 100644
--- a/exa/exa_render.c
+++ b/exa/exa_render.c
@@ -336,16 +336,21 @@ exaTryDriverComposite(CARD8 op,
struct _Pixmap scratch;
ExaMigrationRec pixmaps[3];
+ pSrcPix = exaGetDrawablePixmap(pSrc->pDrawable);
+ pDstPix = exaGetDrawablePixmap(pDst->pDrawable);
+ if (pMask)
+ pMaskPix = exaGetDrawablePixmap(pMask->pDrawable);
+
/* Bail if we might exceed coord limits by rendering from/to these. We
* should really be making some scratch pixmaps with offsets and coords
* adjusted to deal with this, but it hasn't been done yet.
*/
- if (pSrc->pDrawable->width > pExaScr->info->maxX ||
- pSrc->pDrawable->height > pExaScr->info->maxY ||
- pDst->pDrawable->width > pExaScr->info->maxX ||
- pDst->pDrawable->height > pExaScr->info->maxY ||
- (pMask && (pMask->pDrawable->width > pExaScr->info->maxX ||
- pMask->pDrawable->height > pExaScr->info->maxY)))
+ if (pSrcPix->drawable.width > pExaScr->info->maxX ||
+ pSrcPix->drawable.height > pExaScr->info->maxY ||
+ pDstPix->drawable.width > pExaScr->info->maxX ||
+ pDstPix->drawable.height > pExaScr->info->maxY ||
+ (pMask && (pMaskPix->drawable.width > pExaScr->info->maxX ||
+ pMaskPix->drawable.height > pExaScr->info->maxY)))
{
return -1;
}
diff-tree 6b1e354dbb6e8ed9f2c654bbe7f8bbf241843d1c (from 1b029fd896b76096905c516925ce0214fe14632c)
Author: Eric Anholt <eric at anholt.net>
Date: Tue Dec 19 15:24:19 2006 +0100
EXA: Disable SHM pixmaps.
See https://bugs.freedesktop.org/show_bug.cgi?id=6772 .
diff --git a/exa/exa.c b/exa/exa.c
index b490653..bf94114 100644
--- a/exa/exa.c
+++ b/exa/exa.c
@@ -32,6 +32,10 @@
#include <dix-config.h>
#endif
+#ifdef MITSHM
+#include "shmint.h"
+#endif
+
#include <stdlib.h>
#include "exa_priv.h"
@@ -610,6 +614,13 @@ exaDriverInit (ScreenPtr pScreen,
miDisableCompositeWrapper(pScreen);
#endif
+#ifdef MITSHM
+ /* Re-register with the MI funcs, which don't allow shared pixmaps.
+ * Shared pixmaps are almost always a performance loss for us, but this
+ * still allows for SHM PutImage.
+ */
+ ShmRegisterFuncs(pScreen, NULL);
+#endif
/*
* Hookup offscreen pixmaps
*/
diff-tree 1b029fd896b76096905c516925ce0214fe14632c (from a5fcf1e5e7452c9be82f63b6c2be2a25c4109523)
Author: Alan Coopersmith <alan.coopersmith at sun.com>
Date: Mon Dec 18 14:51:04 2006 -0800
Xorg & Xserver man page updates for 1.2 release
- Added -extension & +extension to Xserver man page
- Changed Xorg synopsis from X11R6 to X11R7
- Clarified Xorg ancestry description
- Moved Solaris to free/Open Source OS list
- Removed references to MetroLink module loader & getconfig
- Converted (1) to (__appmansuffix__) in a few more places
- Replaced http://www.freedesktop.org/cvs/ with http://gitweb.freedesktop.org/
diff --git a/doc/Xserver.man.pre b/doc/Xserver.man.pre
index d65acde..2457edf 100644
--- a/doc/Xserver.man.pre
+++ b/doc/Xserver.man.pre
@@ -159,6 +159,14 @@ default state is platform and configurat
disables DPMS (display power management services). The default state
is platform and configuration specific.
.TP 8
+.BI \-extension extensionName
+disables named extension. If an unknown extension name is specified,
+a list of accepted extension names is printed.
+.TP 8
+.BI \+extension extensionName
+enables named extension. If an unknown extension name is specified,
+a list of accepted extension names is printed.
+.TP 8
.B \-f \fIvolume\fP
sets feep (bell) volume (allowable range: 0-100).
.TP 8
diff --git a/hw/xfree86/doc/man/Xorg.man.pre b/hw/xfree86/doc/man/Xorg.man.pre
index 43f0518..c950e32 100644
--- a/hw/xfree86/doc/man/Xorg.man.pre
+++ b/hw/xfree86/doc/man/Xorg.man.pre
@@ -1,7 +1,7 @@
.\" $XdotOrg: xserver/xorg/hw/xfree86/doc/man/Xorg.man.pre,v 1.3 2005/07/04 18:41:01 ajax Exp $
.TH __xservername__ __appmansuffix__ __vendorversion__
.SH NAME
-__xservername__ - X11R6 X server
+__xservername__ - X11R7 X server
.SH SYNOPSIS
.B __xservername__
.RI [\fB:\fP display ]
@@ -13,30 +13,26 @@ is a full featured X server that was ori
UNIX-like operating systems running on Intel x86 hardware. It now runs
on a wider range of hardware and OS platforms.
.PP
-This work was derived from
+This work was derived by the X.Org Foundation from the XFree86 Project's
.I "XFree86\ 4.4rc2"
-by the X.Org Foundation.
-The XFree86 4.4rc2 release was originally derived from
+release.
+The XFree86 release was originally derived from
.I "X386\ 1.2"
by Thomas Roell which was contributed to X11R5 by Snitily Graphics
-Consulting Service. The
-.B __xservername__
-server architecture includes
-among many other things a loadable module system derived from code
-donated by Metro Link, Inc. The current __xservername__ release is compatible
-with X11R6.6.
+Consulting Service.
.SH PLATFORMS
.PP
.B __xservername__
operates under a wide range of operating systems and hardware platforms.
The Intel x86 (IA32) architecture is the most widely supported hardware
-platform. Other hardware platforms include Compaq Alpha, Intel IA64,
+platform. Other hardware platforms include Compaq Alpha, Intel IA64, AMD64,
SPARC and PowerPC. The most widely supported operating systems are the
-free/OpenSource UNIX-like systems such as Linux, FreeBSD, NetBSD and
-OpenBSD. Commercial UNIX operating systems such as Solaris (x86) and
+free/OpenSource UNIX-like systems such as Linux, FreeBSD, NetBSD,
+OpenBSD, and Solaris. Commercial UNIX operating systems such as
UnixWare are also supported. Other supported operating systems include
LynxOS, and GNU Hurd. Darwin and Mac OS X are supported with the
-XDarwin(1) X server. Win32/Cygwin is supported with the XWin X server.
+XDarwin(__appmansuffix__) X server. Win32/Cygwin is supported with the
+XWin(__appmansuffix__) X server.
.PP
.SH "NETWORK CONNECTIONS"
.B __xservername__
@@ -119,13 +115,14 @@ one way, the highest precedence mechanis
is ordered from highest precedence to lowest. Note that not all parameters
can be supplied via all methods. The available command line options
and environment variables (and some defaults) are described here and in
-the Xserver(1) manual page. Most configuration file parameters, with
-their defaults, are described in the __xconfigfile__(__filemansuffix__) manual
-page. Driver and module specific configuration parameters are described
-in the relevant driver or module manual page.
+the Xserver(__appmansuffix__) manual page. Most configuration file
+parameters, with their defaults, are described in the
+__xconfigfile__(__filemansuffix__) manual page. Driver and module specific
+configuration parameters are described in the relevant driver or module
+manual page.
.PP
-In addition to the normal server options described in the Xserver(1)
-manual page,
+In addition to the normal server options described in the
+Xserver(__appmansuffix__) manual page,
.B __xservername__
accepts the following command line switches:
.TP 8
@@ -385,7 +382,8 @@ options.
When this option is specified, the
.B __xservername__
server scans the PCI bus, and prints out some information about each
-device that was detected. See also scanpci(1) and pcitweak(1).
+device that was detected. See also scanpci(__appmansuffix__)
+and pcitweak(__appmansuffix__).
.TP 8
.BI \-screen " screen-name"
Use the __xconfigfile__(__filemansuffix__) file
@@ -508,13 +506,12 @@ for its initial setup.
Refer to the __xconfigfile__(__filemansuffix__) manual page for information
about the format of this file.
.PP
-Starting with version 4.4,
.B __xservername__
has a mechanism for automatically generating a built-in configuration
at run-time when no
.B __xconfigfile__
file is present. The current version of this automatic configuration
-mechanism works in three ways.
+mechanism works in two ways.
.PP
The first is via enhancements that have made many components of the
.B __xconfigfile__
@@ -523,14 +520,7 @@ reasonably deduced doesn't need to be sp
reducing the amount of built-in configuration information that needs to
be generated at run-time.
.PP
-The second is to use an external utility called getconfig(1), when
-available, to use meta-configuration information to generate a suitable
-configuration for the primary video device. The meta-configuration
-information can be updated to allow an existing installation to get the
-best out of new hardware or to work around bugs that are found
-post-release.
-.PP
-The third is to have "safe" fallbacks for most configuration information.
+The second is to have "safe" fallbacks for most configuration information.
This maximises the likelihood that the
.B __xservername__
server will start up in some usable configuration even when information
@@ -644,7 +634,7 @@ __xservername__ was originally based on
That was originally based on \fIX386 1.2\fP by Thomas Roell, which
was contributed to the then X Consortium's X11R5 distribution by SGCS.
.PP
-__xservername__ is released by the X.org Foundation.
+__xservername__ is released by the X.Org Foundation.
.PP
The project that became XFree86 was originally founded in 1992 by
David Dawes, Glenn Lai, Jim Tsillas and David Wexelblat.
@@ -685,9 +675,9 @@ Orest Zborowski \fIorestz at eskimo.com\
.RE
.PP
__xservername__ source is available from the FTP server
-\fI<ftp://ftp.x.org/>\fP, and from the X.org
-server \fI<http://www.freedesktop.org/cvs/>\fP. Documentation and other
-information can be found from the X.org web site
+\fI<ftp://ftp.x.org/>\fP, and from the X.Org
+server \fI<http://gitweb.freedesktop.org/>\fP. Documentation and other
+information can be found from the X.Org web site
\fI<http://www.x.org/>\fP.
.SH LEGAL
diff-tree a5fcf1e5e7452c9be82f63b6c2be2a25c4109523 (from c92f7bef54fa737766d65fe32c200f405f39228c)
Author: James Steven Supancic III <arrummzen at arrummzen.net>
Date: Sat Dec 16 12:02:38 2006 -0500
Fix RENDER issues (bug #7555) and implement RENDER add/remove screen
support (bug #8485).
diff --git a/configure.ac b/configure.ac
index 002be62..491bdd5 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1007,7 +1007,7 @@ dnl ------------------------------------
dnl DMX DDX
AC_MSG_CHECKING([whether to build Xdmx DDX])
-PKG_CHECK_MODULES([DMXMODULES], [xmuu xext x11 xrender xfont xi dmxproto xau $XDMCP_MODULES], [have_dmx=yes], [have_dmx=no])
+PKG_CHECK_MODULES([DMXMODULES], [xmuu xext x11 xrender xfixes xfont xi dmxproto xau $XDMCP_MODULES], [have_dmx=yes], [have_dmx=no])
if test "x$DMX" = xauto; then
DMX="$have_dmx"
fi
diff --git a/hw/dmx/dmxextension.c b/hw/dmx/dmxextension.c
index efcaca4..c12973b 100644
--- a/hw/dmx/dmxextension.c
+++ b/hw/dmx/dmxextension.c
@@ -1056,6 +1056,116 @@ static Bool dmxCompareScreens(DMXScreenI
return TRUE;
}
+#ifdef RENDER
+/** Restore Render's picture */
+static void dmxBERestoreRenderPict(pointer value, XID id, pointer n)
+{
+ PicturePtr pPicture = value; /* The picture */
+ DrawablePtr pDraw = pPicture->pDrawable; /* The picture's drawable */
+ int scrnNum = (int)n;
+
+ if (pDraw->pScreen->myNum != scrnNum) {
+ /* Picture not on the screen we are restoring*/
+ return;
+ }
+
+ if (pDraw->type == DRAWABLE_PIXMAP) {
+ PixmapPtr pPixmap = (PixmapPtr)pDraw;
+
+ /* Create and restore the pixmap drawable */
+ dmxBECreatePixmap(pPixmap);
+ dmxBERestorePixmap(pPixmap);
+ }
+
+ dmxBECreatePicture(pPicture);
+}
+
+/** Restore Render's glyphs */
+static void dmxBERestoreRenderGlyph(pointer value, XID id, pointer n)
+{
+ GlyphSetPtr glyphSet = value;
+ int scrnNum = (int)n;
+ dmxGlyphPrivPtr glyphPriv = DMX_GET_GLYPH_PRIV(glyphSet);
+ DMXScreenInfo *dmxScreen = &dmxScreens[scrnNum];
+ GlyphRefPtr table;
+ char *images;
+ Glyph *gids;
+ XGlyphInfo *glyphs;
+ char *pos;
+ int beret;
+ int len_images = 0;
+ int i;
+ int ctr;
+
+ if (glyphPriv->glyphSets[scrnNum]) {
+ /* Only restore glyphs on the screen we are attaching */
+ return;
+ }
+
+ /* First we must create the glyph set on the backend. */
+ if ((beret = dmxBECreateGlyphSet(scrnNum, glyphSet)) != Success) {
+ dmxLog(dmxWarning,
+ "\tdmxBERestoreRenderGlyph failed to create glyphset!\n");
+ return;
+ }
+
+ /* Now for the complex part, restore the glyph data */
+ table = glyphSet->hash.table;
+
+ /* We need to know how much memory to allocate for this part */
+ for (i = 0; i < glyphSet->hash.hashSet->size; i++) {
+ GlyphRefPtr gr = &table[i];
+ GlyphPtr gl = gr->glyph;
+
+ if (!gl || gl == DeletedGlyph) continue;
+ len_images += gl->size - sizeof(gl->info);
+ }
+
+ /* Now allocate the memory we need */
+ images = ALLOCATE_LOCAL(len_images*sizeof(char));
+ gids = ALLOCATE_LOCAL(glyphSet->hash.tableEntries*sizeof(Glyph));
+ glyphs = ALLOCATE_LOCAL(glyphSet->hash.tableEntries*sizeof(XGlyphInfo));
+
+ memset(images, 0, len_images * sizeof(char));
+ pos = images;
+ ctr = 0;
+
+ /* Fill the allocated memory with the proper data */
+ for (i = 0; i < glyphSet->hash.hashSet->size; i++) {
+ GlyphRefPtr gr = &table[i];
+ GlyphPtr gl = gr->glyph;
+
+ if (!gl || gl == DeletedGlyph) continue;
+
+ /* First lets put the data into gids */
+ gids[ctr] = gr->signature;
+
+ /* Next do the glyphs data structures */
+ glyphs[ctr].width = gl->info.width;
+ glyphs[ctr].height = gl->info.height;
+ glyphs[ctr].x = gl->info.x;
+ glyphs[ctr].y = gl->info.y;
+ glyphs[ctr].xOff = gl->info.xOff;
+ glyphs[ctr].yOff = gl->info.yOff;
+
+ /* Copy the images from the DIX's data into the buffer */
+ memcpy(pos, gl+1, gl->size - sizeof(gl->info));
+ pos += gl->size - sizeof(gl->info);
+ ctr++;
+ }
+
+ /* Now restore the glyph data */
+ XRenderAddGlyphs(dmxScreen->beDisplay, glyphPriv->glyphSets[scrnNum],
+ gids,glyphs, glyphSet->hash.tableEntries, images,
+ len_images);
+
+ /* Clean up */
+ DEALLOCATE_LOCAL(len_images);
+ DEALLOCATE_LOCAL(gids);
+ DEALLOCATE_LOCAL(glyphs);
+}
+#endif
+
/** Reattach previously detached back-end screen. */
int dmxAttachScreen(int idx, DMXScreenAttributesPtr attr)
{
@@ -1174,6 +1284,20 @@ int dmxAttachScreen(int idx, DMXScreenAt
/* Create window hierarchy (top down) */
dmxBECreateWindowTree(idx);
+#ifdef RENDER
+ /* Restore the picture state for RENDER */
+ for (i = currentMaxClients; --i >= 0; )
+ if (clients[i])
+ FindClientResourcesByType(clients[i],PictureType,
+ dmxBERestoreRenderPict,(pointer)idx);
+
+ /* Restore the glyph state for RENDER */
+ for (i = currentMaxClients; --i >= 0; )
+ if (clients[i])
+ FindClientResourcesByType(clients[i],GlyphSetType,
+ dmxBERestoreRenderGlyph,(pointer)idx);
+#endif
+
/* Refresh screen by generating exposure events for all windows */
dmxForceExposures(idx);
@@ -1362,8 +1486,15 @@ static void dmxBEDestroyResources(pointe
#ifdef RENDER
} else if ((type & TypeMask) == (PictureType & TypeMask)) {
PicturePtr pPict = value;
- if (pPict->pDrawable->pScreen->myNum == scrnNum)
+ if (pPict->pDrawable->pScreen->myNum == scrnNum) {
+ /* Free the pixmaps on the backend if needed */
+ if (pPict->pDrawable->type == DRAWABLE_PIXMAP) {
+ PixmapPtr pPixmap = (PixmapPtr)(pPict->pDrawable);
+ dmxBESavePixmap(pPixmap);
+ dmxBEFreePixmap(pPixmap);
+ }
dmxBEFreePicture((PicturePtr)value);
+ }
} else if ((type & TypeMask) == (GlyphSetType & TypeMask)) {
dmxBEFreeGlyphSet(pScreen, (GlyphSetPtr)value);
#endif
diff --git a/hw/dmx/dmxinit.c b/hw/dmx/dmxinit.c
index 9c5356e..1d3689c 100644
--- a/hw/dmx/dmxinit.c
+++ b/hw/dmx/dmxinit.c
@@ -624,7 +624,7 @@ void InitOutput(ScreenInfo *pScreenInfo,
}
/* Make sure that the command-line arguments are sane. */
- if (dmxAddRemoveScreens && (!noRenderExtension || dmxGLXProxy)) {
+ if (dmxAddRemoveScreens && dmxGLXProxy) {
/* Currently it is not possible to support GLX and Render
* extensions with dynamic screen addition/removal due to the
* state that each extension keeps, which cannot be restored. */
diff --git a/hw/dmx/dmxpict.c b/hw/dmx/dmxpict.c
index 3396925..0f1782e 100644
--- a/hw/dmx/dmxpict.c
+++ b/hw/dmx/dmxpict.c
@@ -223,6 +223,36 @@ Bool dmxBEFreeGlyphSet(ScreenPtr pScreen
return FALSE;
}
+/** Create \a glyphSet on the backend screen number \a idx. */
+int dmxBECreateGlyphSet(int idx, GlyphSetPtr glyphSet)
+{
+ XRenderPictFormat *pFormat;
+ DMXScreenInfo *dmxScreen = &dmxScreens[idx];
+ dmxGlyphPrivPtr glyphPriv = DMX_GET_GLYPH_PRIV(glyphSet);
+ PictFormatPtr pFmt = glyphSet->format;
+ int (*oldErrorHandler)(Display *, XErrorEvent *);
+
+ pFormat = dmxFindFormat(dmxScreen, pFmt);
+ if (!pFormat) {
+ return BadMatch;
+ }
+
+ dmxGlyphLastError = 0;
+ oldErrorHandler = XSetErrorHandler(dmxGlyphErrorHandler);
+
+ /* Catch when this fails */
+ glyphPriv->glyphSets[idx]
+ = XRenderCreateGlyphSet(dmxScreen->beDisplay, pFormat);
+
+ XSetErrorHandler(oldErrorHandler);
+
+ if (dmxGlyphLastError) {
+ return dmxGlyphLastError;
+ }
+
+ return Success;
+}
+
/** Create a Glyph Set on each screen. Save the glyphset ID from each
* screen in the Glyph Set's private structure. Fail if the format
* requested is not available or if the Glyph Set cannot be created on
@@ -235,12 +265,9 @@ static int dmxProcRenderCreateGlyphSet(C
ret = dmxSaveRenderVector[stuff->renderReqType](client);
if (ret == Success) {
- int (*oldErrorHandler)(Display *, XErrorEvent *);
GlyphSetPtr glyphSet;
dmxGlyphPrivPtr glyphPriv;
int i;
- PictFormatPtr pFmt;
- XRenderPictFormat *pFormat;
/* Look up glyphSet that was just created ???? */
/* Store glyphsets from backends in glyphSet->devPrivate ????? */
@@ -254,21 +281,16 @@ static int dmxProcRenderCreateGlyphSet(C
MAXSCREENSALLOC_RETURN(glyphPriv->glyphSets, BadAlloc);
DMX_SET_GLYPH_PRIV(glyphSet, glyphPriv);
- pFmt = SecurityLookupIDByType(client, stuff->format, PictFormatType,
- DixReadAccess);
-
- oldErrorHandler = XSetErrorHandler(dmxGlyphErrorHandler);
-
for (i = 0; i < dmxNumScreens; i++) {
DMXScreenInfo *dmxScreen = &dmxScreens[i];
+ int beret;
if (!dmxScreen->beDisplay) {
glyphPriv->glyphSets[i] = 0;
continue;
}
- pFormat = dmxFindFormat(dmxScreen, pFmt);
- if (!pFormat) {
+ if ((beret = dmxBECreateGlyphSet(i, glyphSet)) != Success) {
int j;
/* Free the glyph sets we've allocated thus far */
@@ -278,30 +300,9 @@ static int dmxProcRenderCreateGlyphSet(C
/* Free the resource created by render */
FreeResource(stuff->gsid, RT_NONE);
- ret = BadMatch;
- break;
- }
-
- /* Catch when this fails */
- glyphPriv->glyphSets[i]
- = XRenderCreateGlyphSet(dmxScreen->beDisplay, pFormat);
-
- if (dmxGlyphLastError) {
- int j;
-
- /* Free the glyph sets we've allocated thus far */
- for (j = 0; j < i; j++)
- dmxBEFreeGlyphSet(screenInfo.screens[j], glyphSet);
-
- /* Free the resource created by render */
- FreeResource(stuff->gsid, RT_NONE);
-
- ret = dmxGlyphLastError;
- break;
+ return beret;
}
}
-
- XSetErrorHandler(oldErrorHandler);
}
return ret;
@@ -753,6 +754,20 @@ void dmxCreatePictureList(WindowPtr pWin
}
}
+/** Create \a pPicture on the backend. */
+int dmxBECreatePicture(PicturePtr pPicture)
+{
+ dmxPictPrivPtr pPictPriv = DMX_GET_PICT_PRIV(pPicture);
+
+ /* Create picutre on BE */
+ pPictPriv->pict = dmxDoCreatePicture(pPicture);
+
+ /* Flush changes to the backend server */
+ dmxValidatePicture(pPicture, (1 << (CPLastBit+1)) - 1);
+
+ return Success;
+}
+
/** Create a picture. This function handles the CreatePicture
* unwrapping/wrapping and calls dmxDoCreatePicture to actually create
* the picture on the appropriate screen. */
@@ -853,7 +868,11 @@ int dmxChangePictureClip(PicturePtr pPic
/* The clip has already been changed into a region by the mi
* routine called above.
*/
- if (pPicture->clientClip) {
+ if (clipType == CT_NONE) {
+ /* Disable clipping, show all */
+ XFixesSetPictureClipRegion(dmxScreen->beDisplay,
+ pPictPriv->pict, 0, 0, None);
+ } else if (pPicture->clientClip) {
RegionPtr pClip = pPicture->clientClip;
BoxPtr pBox = REGION_RECTS(pClip);
int nBox = REGION_NUM_RECTS(pClip);
diff --git a/hw/dmx/dmxpict.h b/hw/dmx/dmxpict.h
index 2ca04ed..fe2a659 100644
--- a/hw/dmx/dmxpict.h
+++ b/hw/dmx/dmxpict.h
@@ -112,7 +112,9 @@ extern void dmxTriFan(CARD8 op,
INT16 xSrc, INT16 ySrc,
int npoint, xPointFixed *points);
+extern int dmxBECreateGlyphSet(int idx, GlyphSetPtr glyphSet);
extern Bool dmxBEFreeGlyphSet(ScreenPtr pScreen, GlyphSetPtr glyphSet);
+extern int dmxBECreatePicture(PicturePtr pPicture);
extern Bool dmxBEFreePicture(PicturePtr pPicture);
extern int dmxPictPrivateIndex; /**< Index for picture private data */
diff-tree c92f7bef54fa737766d65fe32c200f405f39228c (from 012807356883128fde58bb2d4f91dd356d6418fc)
Author: Kevin E Martin <kem at freedesktop.org>
Date: Sat Dec 16 12:01:49 2006 -0500
For Xvfb, Xnest and Xprt, compile fbcmap.c with -DXFree86Server
diff --git a/hw/vfb/Makefile.am b/hw/vfb/Makefile.am
index 2a0151f..4f711fd 100644
--- a/hw/vfb/Makefile.am
+++ b/hw/vfb/Makefile.am
@@ -21,6 +21,7 @@ Xvfb_LDFLAGS =
AM_CFLAGS = -DHAVE_DIX_CONFIG_H \
-DNO_HW_ONLY_EXTS \
-DNO_MODULE_EXTS \
+ -DXFree86Server \
$(XVFBMODULES_CFLAGS) \
$(DIX_CFLAGS)
diff --git a/hw/xnest/Makefile.am b/hw/xnest/Makefile.am
index d40d122..cce1fef 100644
--- a/hw/xnest/Makefile.am
+++ b/hw/xnest/Makefile.am
@@ -51,6 +51,7 @@ Xnest_LDFLAGS =
AM_CFLAGS = -DHAVE_XNEST_CONFIG_H \
-DNO_HW_ONLY_EXTS \
+ -DXFree86Server \
$(DIX_CFLAGS) \
$(XNESTMODULES_CFLAGS)
diff --git a/hw/xprint/Makefile.am b/hw/xprint/Makefile.am
index 27a7e30..d4f22d2 100644
--- a/hw/xprint/Makefile.am
+++ b/hw/xprint/Makefile.am
@@ -5,7 +5,8 @@ bin_PROGRAMS = Xprt
Xprt_CFLAGS = @DIX_CFLAGS@ @XPRINT_CFLAGS@ \
-DXPRINT -DPRINT_ONLY_SERVER -D_XP_PRINT_SERVER_ \
-DXPRINTDIR=\"$(libdir)/X11/xserver\" \
- -DXPRASTERDDX -DXPPCLDDX -DXPMONOPCLDDX -DXPPSDDX
+ -DXPRASTERDDX -DXPPCLDDX -DXPMONOPCLDDX -DXPPSDDX \
+ -DXFree86Server
Xprt_LDFLAGS = -L$(top_srcdir)
Xprt_LDADD = @XPRINT_LIBS@ ps/libps.la raster/libraster.la \
diff-tree 012807356883128fde58bb2d4f91dd356d6418fc (from ab1d5b0c31a1cfce95ab6b1d06f209f2c44e19ac)
Author: Eamon Walsh <ewalsh at tycho.nsa.gov>
Date: Fri Dec 15 18:27:16 2006 -0500
Add loud warnings to deprecated lookup functions.
Hopefully this will alert external driver maintainers.
diff --git a/dix/dixutils.c b/dix/dixutils.c
index 2859b96..084d2e4 100644
--- a/dix/dixutils.c
+++ b/dix/dixutils.c
@@ -281,39 +281,53 @@ dixLookupClient(ClientPtr *pClient, XID
* These are deprecated compatibility functions and will be removed soon!
* Please use the new dixLookup*() functions above.
*/
-_X_EXPORT WindowPtr
+_X_EXPORT _X_DEPRECATED WindowPtr
SecurityLookupWindow(XID id, ClientPtr client, Mask access_mode)
{
WindowPtr pWin;
int i = dixLookupWindow(&pWin, id, client, access_mode);
+ static int warn = 1;
+ if (warn-- > 0)
+ ErrorF("Warning: LookupWindow()/SecurityLookupWindow() "
+ "are deprecated. Please convert your driver/module "
+ "to use dixLookupWindow().\n");
return (i == Success) ? pWin : NULL;
}
-_X_EXPORT WindowPtr
+_X_EXPORT _X_DEPRECATED WindowPtr
LookupWindow(XID id, ClientPtr client)
{
return SecurityLookupWindow(id, client, DixUnknownAccess);
}
-_X_EXPORT pointer
+_X_EXPORT _X_DEPRECATED pointer
SecurityLookupDrawable(XID id, ClientPtr client, Mask access_mode)
{
DrawablePtr pDraw;
int i = dixLookupDrawable(&pDraw, id, client, M_DRAWABLE, access_mode);
+ static int warn = 1;
+ if (warn-- > 0)
+ ErrorF("Warning: LookupDrawable()/SecurityLookupDrawable() "
+ "are deprecated. Please convert your driver/module "
+ "to use dixLookupDrawable().\n");
return (i == Success) ? pDraw : NULL;
}
-_X_EXPORT pointer
+_X_EXPORT _X_DEPRECATED pointer
LookupDrawable(XID id, ClientPtr client)
{
return SecurityLookupDrawable(id, client, DixUnknownAccess);
}
-_X_EXPORT ClientPtr
+_X_EXPORT _X_DEPRECATED ClientPtr
LookupClient(XID id, ClientPtr client)
{
ClientPtr pClient;
int i = dixLookupClient(&pClient, id, client, DixUnknownAccess);
+ static int warn = 1;
+ if (warn-- > 0)
+ ErrorF("Warning: LookupClient() is deprecated. Please convert your "
+ "driver/module to use dixLookupClient().\n");
return (i == Success) ? pClient : NULL;
}
diff-tree ab1d5b0c31a1cfce95ab6b1d06f209f2c44e19ac (from f11dafaafc68f5cff1a1538d9566907786d8ab72)
Author: Eamon Walsh <ewalsh at tycho.nsa.gov>
Date: Fri Dec 15 17:26:58 2006 -0500
Convert callers of LookupClient() to dixLookupClient().
diff --git a/Xext/appgroup.c b/Xext/appgroup.c
index 134b172..bb7a73c 100644
--- a/Xext/appgroup.c
+++ b/Xext/appgroup.c
@@ -485,10 +485,13 @@ int ProcXagQuery(
ClientPtr pClient;
AppGroupPtr pAppGrp;
REQUEST (xXagQueryReq);
- int n;
+ int n, rc;
REQUEST_SIZE_MATCH (xXagQueryReq);
- pClient = LookupClient (stuff->resource, client);
+ rc = dixLookupClient(&pClient, stuff->resource, client, DixUnknownAccess);
+ if (rc != Success)
+ return rc;
+
for (pAppGrp = appGrpList; pAppGrp != NULL; pAppGrp = pAppGrp->next)
for (n = 0; n < pAppGrp->nclients; n++)
if (pAppGrp->clients[n] == pClient) {
diff --git a/Xext/sync.c b/Xext/sync.c
index 1d89934..531b48c 100644
--- a/Xext/sync.c
+++ b/Xext/sync.c
@@ -1452,15 +1452,17 @@ ProcSyncSetPriority(client)
{
REQUEST(xSyncSetPriorityReq);
ClientPtr priorityclient;
+ int rc;
REQUEST_SIZE_MATCH(xSyncSetPriorityReq);
if (stuff->id == None)
priorityclient = client;
- else if (!(priorityclient = LookupClient(stuff->id, client)))
- {
- client->errorValue = stuff->id;
- return BadMatch;
+ else {
+ rc = dixLookupClient(&priorityclient, stuff->id, client,
+ DixUnknownAccess);
+ if (rc != Success)
+ return rc;
}
if (priorityclient->priority != stuff->priority)
@@ -1487,15 +1489,17 @@ ProcSyncGetPriority(client)
REQUEST(xSyncGetPriorityReq);
xSyncGetPriorityReply rep;
ClientPtr priorityclient;
+ int rc;
REQUEST_SIZE_MATCH(xSyncGetPriorityReq);
if (stuff->id == None)
priorityclient = client;
- else if (!(priorityclient = LookupClient(stuff->id, client)))
- {
- client->errorValue = stuff->id;
- return BadMatch;
+ else {
+ rc = dixLookupClient(&priorityclient, stuff->id, client,
+ DixUnknownAccess);
+ if (rc != Success)
+ return rc;
}
rep.type = X_Reply;
diff --git a/dix/dispatch.c b/dix/dispatch.c
index 3060a4c..51ad07d 100644
--- a/dix/dispatch.c
+++ b/dix/dispatch.c
@@ -3388,7 +3388,8 @@ int
ProcKillClient(register ClientPtr client)
{
REQUEST(xResourceReq);
- ClientPtr killclient;
+ ClientPtr killclient;
+ int rc;
REQUEST_SIZE_MATCH(xResourceReq);
if (stuff->id == AllTemporary)
@@ -3397,8 +3398,8 @@ ProcKillClient(register ClientPtr client
return (client->noClientException);
}
- if ((killclient = LookupClient(stuff->id, client)))
- {
+ rc = dixLookupClient(&killclient, stuff->id, client, DixDestroyAccess);
+ if (rc == Success) {
CloseDownClient(killclient);
/* if an LBX proxy gets killed, isItTimeToYield will be set */
if (isItTimeToYield || (client == killclient))
@@ -3412,10 +3413,7 @@ ProcKillClient(register ClientPtr client
return (client->noClientException);
}
else
- {
- client->errorValue = stuff->id;
- return (BadValue);
- }
+ return rc;
}
int
diff --git a/dix/dixutils.c b/dix/dixutils.c
index 3479ddc..2859b96 100644
--- a/dix/dixutils.c
+++ b/dix/dixutils.c
@@ -262,11 +262,12 @@ dixLookupGC(GCPtr *pGC, XID id, ClientPt
}
_X_EXPORT int
-dixLookupClient(ClientPtr *pClient, XID rid, ClientPtr client)
+dixLookupClient(ClientPtr *pClient, XID rid, ClientPtr client, Mask access)
{
pointer pRes = (pointer)SecurityLookupIDByClass(client, rid, RC_ANY,
DixReadAccess);
int clientIndex = CLIENT_ID(rid);
+ client->errorValue = rid;
if (clientIndex && pRes && clients[clientIndex] && !(rid & SERVER_BIT)) {
*pClient = clients[clientIndex];
@@ -312,7 +313,7 @@ _X_EXPORT ClientPtr
LookupClient(XID id, ClientPtr client)
{
ClientPtr pClient;
- int i = dixLookupClient(&pClient, id, client);
+ int i = dixLookupClient(&pClient, id, client, DixUnknownAccess);
return (i == Success) ? pClient : NULL;
}
diff --git a/include/dix.h b/include/dix.h
index baff43f..5c2c5b8 100644
--- a/include/dix.h
+++ b/include/dix.h
@@ -301,7 +301,8 @@ extern int dixLookupGC(
extern int dixLookupClient(
ClientPtr *result,
XID id,
- ClientPtr client);
+ ClientPtr client,
+ Mask access_mode);
/*
* These are deprecated compatibility functions and will be removed soon!
diff-tree f11dafaafc68f5cff1a1538d9566907786d8ab72 (from 10aabb729d1586db344f9c1abdf1cf45e7ddaa7a)
Author: Eamon Walsh <ewalsh at tycho.nsa.gov>
Date: Fri Dec 15 16:51:58 2006 -0500
Convert callers of SecurityLookupDrawable() to dixLookupDrawable().
diff --git a/dbe/dbe.c b/dbe/dbe.c
index 69ddf4f..38375f9 100644
--- a/dbe/dbe.c
+++ b/dbe/dbe.c
@@ -865,7 +865,7 @@ ProcDbeGetVisualInfo(ClientPtr client)
xDbeGetVisualInfoReply rep;
Drawable *drawables;
DrawablePtr *pDrawables = NULL;
- register int i, j, n;
+ register int i, j, n, rc;
register int count; /* number of visual infos in reply */
register int length; /* length of reply */
ScreenPtr pScreen;
@@ -887,11 +887,11 @@ ProcDbeGetVisualInfo(ClientPtr client)
for (i = 0; i < stuff->n; i++)
{
- if (!(pDrawables[i] = (DrawablePtr)SecurityLookupDrawable(
- drawables[i], client, DixReadAccess)))
- {
+ rc = dixLookupDrawable(pDrawables+i, drawables[i], client, 0,
+ DixReadAccess);
+ if (rc != Success) {
DEALLOCATE_LOCAL(pDrawables);
- return(BadDrawable);
+ return rc;
}
}
}
diff --git a/hw/darwin/quartz/xpr/appledri.c b/hw/darwin/quartz/xpr/appledri.c
index 585d7e1..dd688ca 100644
--- a/hw/darwin/quartz/xpr/appledri.c
+++ b/hw/darwin/quartz/xpr/appledri.c
@@ -213,6 +213,7 @@ ProcAppleDRICreateSurface(
DrawablePtr pDrawable;
xp_surface_id sid;
unsigned int key[2];
+ int rc;
REQUEST(xAppleDRICreateSurfaceReq);
REQUEST_SIZE_MATCH(xAppleDRICreateSurfaceReq);
@@ -220,12 +221,10 @@ ProcAppleDRICreateSurface(
rep.length = 0;
rep.sequenceNumber = client->sequence;
- if (!(pDrawable = (DrawablePtr)SecurityLookupDrawable(
- (Drawable)stuff->drawable,
- client,
- DixReadAccess))) {
- return BadValue;
- }
+ rc = dixLookupDrawable(&pDrawable, stuff->drawable, client, 0,
+ DixReadAccess);
+ if (rc != Success)
+ return rc;
rep.key_0 = rep.key_1 = rep.uid = 0;
@@ -252,13 +251,12 @@ ProcAppleDRIDestroySurface(
REQUEST(xAppleDRIDestroySurfaceReq);
DrawablePtr pDrawable;
REQUEST_SIZE_MATCH(xAppleDRIDestroySurfaceReq);
+ int rc;
- if (!(pDrawable = (DrawablePtr)SecurityLookupDrawable(
- (Drawable)stuff->drawable,
- client,
- DixReadAccess))) {
- return BadValue;
- }
+ rc = dixLookupDrawable(&pDrawable, stuff->drawable, client, 0,
+ DixReadAccess);
+ if (rc != Success)
+ return rc;
if (!DRIDestroySurface( screenInfo.screens[stuff->screen],
(Drawable)stuff->drawable,
diff --git a/hw/xfree86/dri/xf86dri.c b/hw/xfree86/dri/xf86dri.c
index 03e6725..933cd3e 100644
--- a/hw/xfree86/dri/xf86dri.c
+++ b/hw/xfree86/dri/xf86dri.c
@@ -386,6 +386,7 @@ ProcXF86DRICreateDrawable(
{
xXF86DRICreateDrawableReply rep;
DrawablePtr pDrawable;
+ int rc;
REQUEST(xXF86DRICreateDrawableReq);
REQUEST_SIZE_MATCH(xXF86DRICreateDrawableReq);
@@ -398,12 +399,10 @@ ProcXF86DRICreateDrawable(
rep.length = 0;
rep.sequenceNumber = client->sequence;
- if (!(pDrawable = (DrawablePtr)SecurityLookupDrawable(
- (Drawable)stuff->drawable,
- client,
- DixReadAccess))) {
- return BadValue;
- }
+ rc = dixLookupDrawable(&pDrawable, stuff->drawable, client, 0,
+ DixReadAccess);
+ if (rc != Success)
+ return rc;
if (!DRICreateDrawable( screenInfo.screens[stuff->screen],
(Drawable)stuff->drawable,
@@ -424,17 +423,17 @@ ProcXF86DRIDestroyDrawable(
REQUEST(xXF86DRIDestroyDrawableReq);
DrawablePtr pDrawable;
REQUEST_SIZE_MATCH(xXF86DRIDestroyDrawableReq);
+ int rc;
+
if (stuff->screen >= screenInfo.numScreens) {
client->errorValue = stuff->screen;
return BadValue;
}
- if (!(pDrawable = (DrawablePtr)SecurityLookupDrawable(
- (Drawable)stuff->drawable,
- client,
- DixReadAccess))) {
- return BadValue;
- }
+ rc = dixLookupDrawable(&pDrawable, stuff->drawable, client, 0,
+ DixReadAccess);
+ if (rc != Success)
+ return rc;
if (!DRIDestroyDrawable( screenInfo.screens[stuff->screen],
(Drawable)stuff->drawable,
@@ -455,7 +454,7 @@ ProcXF86DRIGetDrawableInfo(
int X, Y, W, H;
drm_clip_rect_t * pClipRects;
drm_clip_rect_t * pBackClipRects;
- int backX, backY;
+ int backX, backY, rc;
REQUEST(xXF86DRIGetDrawableInfoReq);
REQUEST_SIZE_MATCH(xXF86DRIGetDrawableInfoReq);
@@ -468,12 +467,10 @@ ProcXF86DRIGetDrawableInfo(
rep.length = 0;
rep.sequenceNumber = client->sequence;
- if (!(pDrawable = (DrawablePtr)SecurityLookupDrawable(
- (Drawable)stuff->drawable,
- client,
- DixReadAccess))) {
- return BadValue;
- }
+ rc = dixLookupDrawable(&pDrawable, stuff->drawable, client, 0,
+ DixReadAccess);
+ if (rc != Success)
+ return rc;
if (!DRIGetDrawableInfo( screenInfo.screens[stuff->screen],
pDrawable,
diff-tree 10aabb729d1586db344f9c1abdf1cf45e7ddaa7a (from 25d5e0a629f82d95bd71daf9a920a70e095b5188)
Author: Eamon Walsh <ewalsh at tycho.nsa.gov>
Date: Fri Dec 15 16:36:29 2006 -0500
Convert callers of LookupDrawable() to dixLookupDrawable().
diff --git a/GL/glx/glxcmds.c b/GL/glx/glxcmds.c
index ccdf3fa..6273edc 100644
--- a/GL/glx/glxcmds.c
+++ b/GL/glx/glxcmds.c
@@ -441,6 +441,7 @@ static int GetDrawableOrPixmap( __GLXcon
__GLcontextModes *modes;
__GLXdrawable *pGlxDraw;
__GLXpixmap *drawPixmap = NULL;
+ int rc;
/* This is the GLX 1.3 case - the client passes in a GLXWindow and
* we just return the __GLXdrawable. The first time a GLXPixmap
@@ -466,8 +467,8 @@ static int GetDrawableOrPixmap( __GLXcon
* GLXWindow with the same XID as an X Window, so we wont get any
* resource ID clashes. Effectively, the X Window is now also a
* GLXWindow. */
- pDraw = (DrawablePtr) LookupDrawable(drawId, client);
- if (pDraw) {
+ rc = dixLookupDrawable(&pDraw, drawId, client, 0, DixUnknownAccess);
+ if (rc == Success) {
if (pDraw->type == DRAWABLE_WINDOW) {
VisualID vid = wVisual((WindowPtr)pDraw);
@@ -1199,12 +1200,12 @@ static int ValidateCreateDrawable(Client
ScreenPtr pScreen;
VisualPtr pVisual;
__GLXscreen *pGlxScreen;
- int i;
+ int i, rc;
LEGAL_NEW_RESOURCE(glxDrawableId, client);
- pDraw = (DrawablePtr) LookupDrawable(drawablId, client);
- if (!pDraw || pDraw->type != type) {
+ rc = dixLookupDrawable(&pDraw, drawablId, client, 0, DixUnknownAccess);
+ if (rc != Success || pDraw->type != type) {
client->errorValue = drawablId;
return type == DRAWABLE_WINDOW ? BadWindow : BadPixmap;
}
@@ -2034,10 +2035,11 @@ int __glXDisp_BindSwapBarrierSGIX(__GLXc
xGLXBindSwapBarrierSGIXReq *req = (xGLXBindSwapBarrierSGIXReq *) pc;
XID drawable = req->drawable;
int barrier = req->barrier;
- DrawablePtr pDraw = (DrawablePtr) LookupDrawable(drawable, client);
- int screen;
+ DrawablePtr pDraw;
+ int screen, rc;
- if (pDraw && (pDraw->type == DRAWABLE_WINDOW)) {
+ rc = dixLookupDrawable(&pDraw, drawable, client, 0, DixUnknownAccess);
+ if (rc == Success && (pDraw->type == DRAWABLE_WINDOW)) {
screen = pDraw->pScreen->myNum;
if (__glXSwapBarrierFuncs &&
__glXSwapBarrierFuncs[screen].bindSwapBarrierFunc) {
diff --git a/XTrap/xtrapdi.c b/XTrap/xtrapdi.c
index c5d640d..23d3bde 100644
--- a/XTrap/xtrapdi.c
+++ b/XTrap/xtrapdi.c
@@ -1092,8 +1092,8 @@ int XETrapRequestVector(ClientPtr client
pdata->hdr.client = client->index; /* stuff client index in hdr */
if (BitIsTrue(penv->cur.data_config_flags_data,XETrapWinXY))
{
- window_ptr = (WindowPtr) LookupDrawable(stuff->id, client);
- if (window_ptr == 0L)
+ if (Success != dixLookupDrawable(&window_ptr, stuff->id,
+ client, 0, DixUnknownAccess))
{ /* Failed...invalidate the X and Y coordinate data. */
pdata->hdr.win_x = -1L;
pdata->hdr.win_y = -1L;
diff --git a/Xext/mbuf.c b/Xext/mbuf.c
index 43e2cc1..ed352e2 100644
--- a/Xext/mbuf.c
+++ b/Xext/mbuf.c
@@ -786,15 +786,15 @@ ProcGetBufferInfo (client)
DrawablePtr pDrawable;
xMbufGetBufferInfoReply rep;
ScreenPtr pScreen;
- int i, j, k;
- int n;
+ int i, j, k, n, rc;
xMbufBufferInfo *pInfo;
int nInfo;
DepthPtr pDepth;
- pDrawable = (DrawablePtr) LookupDrawable (stuff->drawable, client);
- if (!pDrawable)
- return BadDrawable;
+ rc = dixLookupDrawable(&pDrawable, stuff->drawable, client, 0,
+ DixUnknownAccess);
+ if (rc != Success)
+ return rc;
pScreen = pDrawable->pScreen;
nInfo = 0;
for (i = 0; i < pScreen->numDepths; i++)
diff --git a/Xext/saver.c b/Xext/saver.c
index d6b537a..7e3ebf4 100644
--- a/Xext/saver.c
+++ b/Xext/saver.c
@@ -780,16 +780,17 @@ ProcScreenSaverQueryInfo (client)
{
REQUEST(xScreenSaverQueryInfoReq);
xScreenSaverQueryInfoReply rep;
- register int n;
+ register int n, rc;
ScreenSaverStuffPtr pSaver;
DrawablePtr pDraw;
CARD32 lastInput;
ScreenSaverScreenPrivatePtr pPriv;
REQUEST_SIZE_MATCH (xScreenSaverQueryInfoReq);
- pDraw = (DrawablePtr) LookupDrawable (stuff->drawable, client);
- if (!pDraw)
- return BadDrawable;
+ rc = dixLookupDrawable(&pDraw, stuff->drawable, client, 0,
+ DixUnknownAccess);
+ if (rc != Success)
+ return rc;
pSaver = &savedScreenInfo[pDraw->pScreen->myNum];
pPriv = GetScreenPrivate (pDraw->pScreen);
@@ -852,11 +853,13 @@ ProcScreenSaverSelectInput (client)
{
REQUEST(xScreenSaverSelectInputReq);
DrawablePtr pDraw;
+ int rc;
REQUEST_SIZE_MATCH (xScreenSaverSelectInputReq);
- pDraw = (DrawablePtr) LookupDrawable (stuff->drawable, client);
- if (!pDraw)
- return BadDrawable;
+ rc = dixLookupDrawable (&pDraw, stuff->drawable, client, 0,
+ DixUnknownAccess);
+ if (rc != Success)
+ return rc;
if (!setEventMask (pDraw->pScreen, client, stuff->eventMask))
return BadAlloc;
return Success;
@@ -871,9 +874,7 @@ ScreenSaverSetAttributes (ClientPtr clie
ScreenPtr pScreen;
ScreenSaverScreenPrivatePtr pPriv = 0;
ScreenSaverAttrPtr pAttr = 0;
- int ret;
- int len;
- int class, bw, depth;
+ int ret, len, class, bw, depth;
unsigned long visual;
int idepth, ivisual;
Bool fOK;
@@ -891,9 +892,10 @@ ScreenSaverSetAttributes (ClientPtr clie
ColormapPtr pCmap;
REQUEST_AT_LEAST_SIZE (xScreenSaverSetAttributesReq);
- pDraw = (DrawablePtr) LookupDrawable (stuff->drawable, client);
- if (!pDraw)
- return BadDrawable;
+ ret = dixLookupDrawable(&pDraw, stuff->drawable, client, 0,
+ DixUnknownAccess);
+ if (ret != Success)
+ return ret;
pScreen = pDraw->pScreen;
pParent = WindowTable[pScreen->myNum];
@@ -1246,11 +1248,13 @@ ScreenSaverUnsetAttributes (ClientPtr cl
REQUEST(xScreenSaverSetAttributesReq);
DrawablePtr pDraw;
ScreenSaverScreenPrivatePtr pPriv;
+ int rc;
REQUEST_SIZE_MATCH (xScreenSaverUnsetAttributesReq);
- pDraw = (DrawablePtr) LookupDrawable (stuff->drawable, client);
- if (!pDraw)
- return BadDrawable;
+ rc = dixLookupDrawable(&pDraw, stuff->drawable, client, 0,
+ DixUnknownAccess);
+ if (rc != Success)
+ return rc;
pPriv = GetScreenPrivate (pDraw->pScreen);
if (pPriv && pPriv->attr && pPriv->attr->client == client)
{
diff --git a/Xext/xprint.c b/Xext/xprint.c
index d8fc517..4ac13e6 100644
--- a/Xext/xprint.c
+++ b/Xext/xprint.c
@@ -1944,8 +1944,11 @@ ProcXpPutDocumentData(ClientPtr client)
if (stuff->drawable) {
if (pContext->state & DOC_RAW_STARTED)
return BadDrawable;
- pDraw = (DrawablePtr)LookupDrawable(stuff->drawable, client);
- if (!pDraw || pDraw->pScreen->myNum != pContext->screenNum)
+ result = dixLookupDrawable(&pDraw, stuff->drawable, client, 0,
+ DixUnknownAccess);
+ if (result != Success)
+ return result;
+ if (pDraw->pScreen->myNum != pContext->screenNum)
return BadDrawable;
} else {
if (pContext->state & DOC_COOKED_STARTED)
diff --git a/hw/dmx/glxProxy/glxcmds.c b/hw/dmx/glxProxy/glxcmds.c
index aa9d831..6771cf1 100644
--- a/hw/dmx/glxProxy/glxcmds.c
+++ b/hw/dmx/glxProxy/glxcmds.c
@@ -430,9 +430,10 @@ int __glXBindSwapBarrierSGIX(__GLXclient
DrawablePtr pDraw;
__GLXpixmap *pGlxPixmap = NULL;
__glXWindow *pGlxWindow = NULL;
+ int rc;
- pDraw = (DrawablePtr) LookupDrawable(req->drawable, client);
- if (!pDraw) {
+ rc = dixLookupDrawable(&pDraw, req->drawable, client, 0, DixUnknownAccess);
+ if (rc != Success) {
pGlxPixmap = (__GLXpixmap *) LookupIDByType(req->drawable,
__glXPixmapRes);
if (pGlxPixmap) pDraw = pGlxPixmap->pDraw;
@@ -459,9 +460,10 @@ int __glXJoinSwapGroupSGIX(__GLXclientSt
DrawablePtr pDraw, pMember = NULL;
__GLXpixmap *pGlxPixmap = NULL;
__glXWindow *pGlxWindow = NULL;
+ int rc;
- pDraw = (DrawablePtr) LookupDrawable(req->drawable, client);
- if (!pDraw) {
+ rc = dixLookupDrawable(&pDraw, req->drawable, client, 0, DixUnknownAccess);
+ if (rc != Success) {
pGlxPixmap = (__GLXpixmap *) LookupIDByType(req->drawable,
__glXPixmapRes);
if (pGlxPixmap) pDraw = pGlxPixmap->pDraw;
@@ -479,8 +481,9 @@ int __glXJoinSwapGroupSGIX(__GLXclientSt
}
if (req->member != None) {
- pMember = (DrawablePtr) LookupDrawable(req->member, client);
- if (!pMember) {
+ rc = dixLookupDrawable(&pMember, req->member, client, 0,
+ DixUnknownAccess);
+ if (rc != Success) {
pGlxPixmap = (__GLXpixmap *) LookupIDByType(req->member,
__glXPixmapRes);
if (pGlxPixmap) pMember = pGlxPixmap->pDraw;
@@ -734,7 +737,7 @@ static int MakeCurrent(__GLXclientState
#endif
int from_screen = 0;
int to_screen = 0;
- int s;
+ int s, rc;
/*
** If one is None and the other isn't, it's a bad match.
@@ -778,8 +781,8 @@ static int MakeCurrent(__GLXclientState
}
if (drawId != None) {
- pDraw = (DrawablePtr) LookupDrawable(drawId, client);
- if (pDraw) {
+ rc = dixLookupDrawable(&pDraw, drawId, client, 0, DixUnknownAccess);
+ if (rc == Success) {
if (pDraw->type == DRAWABLE_WINDOW) {
/*
** Drawable is an X Window.
@@ -885,8 +888,8 @@ static int MakeCurrent(__GLXclientState
}
if (readId != None && readId != drawId ) {
- pReadDraw = (DrawablePtr) LookupDrawable(readId, client);
- if (pReadDraw) {
+ rc = dixLookupDrawable(&pReadDraw, readId, client, 0,DixUnknownAccess);
+ if (rc == Success) {
if (pReadDraw->type == DRAWABLE_WINDOW) {
/*
** Drawable is an X Window.
@@ -1636,18 +1639,16 @@ static int CreateGLXPixmap(__GLXclientSt
__GLXscreenInfo *pGlxScreen;
__GLXvisualConfig *pGlxVisual;
__GLXFBConfig *pFBConfig;
- int i;
- int s;
+ int i, s, rc;
int from_screen, to_screen;
#ifdef PANORAMIX
PanoramiXRes *pXinDraw = NULL;
#endif
- pDraw = (DrawablePtr) LookupDrawable(pixmapId, client);
- if (!pDraw || pDraw->type != DRAWABLE_PIXMAP) {
- client->errorValue = pixmapId;
- return BadPixmap;
- }
+ rc = dixLookupDrawable(&pDraw, pixmapId, client, M_DRAWABLE_PIXMAP,
+ DixUnknownAccess);
+ if (rc != Success)
+ return rc;
/*
** Check if screen of visual matches screen of pixmap.
@@ -1778,7 +1779,8 @@ static int CreateGLXPixmap(__GLXclientSt
#ifdef PANORAMIX
if (pXinDraw) {
- pRealDraw = (DrawablePtr) LookupDrawable(pXinDraw->info[s].id,client);
+ dixLookupDrawable(&pRealDraw, pXinDraw->info[s].id, client, 0,
+ DixUnknownAccess);
}
#endif
@@ -1944,14 +1946,13 @@ int __glXDoSwapBuffers(__GLXclientState
__glXWindow *pGlxWindow = NULL;
int from_screen = 0;
int to_screen = 0;
- int s;
+ int s, rc;
/*
** Check that the GLX drawable is valid.
*/
- pDraw = (DrawablePtr) LookupDrawable(drawId, client);
- if (pDraw) {
-
+ rc = dixLookupDrawable(&pDraw, drawId, client, 0, DixUnknownAccess);
+ if (rc == Success) {
from_screen = to_screen = pDraw->pScreen->myNum;
if (pDraw->type == DRAWABLE_WINDOW) {
@@ -2099,12 +2100,13 @@ int __glXSwapBuffers(__GLXclientState *c
__GLXpixmap *pGlxPixmap = NULL;
__GLXcontext *glxc = NULL;
__glXWindow *pGlxWindow = NULL;
+ int rc;
/*
** Check that the GLX drawable is valid.
*/
- pDraw = (DrawablePtr) LookupDrawable(drawId, client);
- if (pDraw) {
+ rc = dixLookupDrawable(&pDraw, drawId, client, 0, DixUnknownAccess);
+ if (rc == Success) {
if (pDraw->type != DRAWABLE_WINDOW) {
/*
** Drawable is an X pixmap, which is not allowed.
@@ -2892,16 +2894,15 @@ int __glXCreateWindow(__GLXclientState *
__GLXFBConfig *pGlxFBConfig = NULL;
VisualPtr pVisual;
VisualID visId;
- int i;
+ int i, rc;
/*
** Check if windowId is valid
*/
- pDraw = (DrawablePtr) LookupDrawable(windowId, client);
- if (!pDraw || pDraw->type != DRAWABLE_WINDOW) {
- client->errorValue = windowId;
- return BadWindow;
- }
+ rc = dixLookupDrawable(&pDraw, windowId, client, M_DRAWABLE_WINDOW,
+ DixUnknownAccess);
+ if (rc != Success)
+ return rc;
/*
** Check if screen of window matches screen of fbconfig.
@@ -3274,7 +3275,7 @@ int __glXGetDrawableAttributes(__GLXclie
GLXDrawable be_drawable = 0;
DrawablePtr pDraw = NULL;
Display *dpy;
- int screen;
+ int screen, rc;
DMXScreenInfo *dmxScreen;
CARD32 *attribs = NULL;
int attribs_size;
@@ -3283,8 +3284,8 @@ int __glXGetDrawableAttributes(__GLXclie
#endif
if (drawId != None) {
- pDraw = (DrawablePtr) LookupDrawable(drawId, client);
- if (pDraw) {
+ rc = dixLookupDrawable(&pDraw, drawId, client, 0, DixUnknownAccess);
+ if (rc == Success) {
if (pDraw->type == DRAWABLE_WINDOW) {
WindowPtr pWin = (WindowPtr)pDraw;
be_drawable = 0;
@@ -3435,7 +3436,7 @@ int __glXChangeDrawableAttributes(__GLXc
GLXDrawable be_drawable = 0;
DrawablePtr pDraw = NULL;
Display *dpy;
- int screen;
+ int screen, rc;
DMXScreenInfo *dmxScreen;
char *attrbuf;
#ifdef PANORAMIX
@@ -3444,8 +3445,8 @@ int __glXChangeDrawableAttributes(__GLXc
#endif
if (drawId != None) {
- pDraw = (DrawablePtr) LookupDrawable(drawId, client);
- if (pDraw) {
+ rc = dixLookupDrawable(&pDraw, drawId, client, 0, DixUnknownAccess);
+ if (rc == Success) {
if (pDraw->type == DRAWABLE_WINDOW) {
WindowPtr pWin = (WindowPtr)pDraw;
be_drawable = 0;
diff-tree 25d5e0a629f82d95bd71daf9a920a70e095b5188 (from 04c721854fbf1bd6379c165a53fab2bdc09961c0)
Author: Eamon Walsh <ewalsh at tycho.nsa.gov>
Date: Fri Dec 15 15:50:46 2006 -0500
Convert callers of SecurityLookupWindow() to dixLookupWindow().
diff --git a/Xext/panoramiXprocs.c b/Xext/panoramiXprocs.c
index a193c41..1c53a1e 100644
--- a/Xext/panoramiXprocs.c
+++ b/Xext/panoramiXprocs.c
@@ -577,19 +577,17 @@ int PanoramiXTranslateCoords(ClientPtr c
{
INT16 x, y;
REQUEST(xTranslateCoordsReq);
-
- register WindowPtr pWin, pDst;
+ int rc;
+ WindowPtr pWin, pDst;
xTranslateCoordsReply rep;
REQUEST_SIZE_MATCH(xTranslateCoordsReq);
- pWin = (WindowPtr)SecurityLookupWindow(stuff->srcWid, client,
- DixReadAccess);
- if (!pWin)
- return(BadWindow);
- pDst = (WindowPtr)SecurityLookupWindow(stuff->dstWid, client,
- DixReadAccess);
- if (!pDst)
- return(BadWindow);
+ rc = dixLookupWindow(&pWin, stuff->srcWid, client, DixReadAccess);
+ if (rc != Success)
+ return rc;
+ rc = dixLookupWindow(&pDst, stuff->dstWid, client, DixReadAccess);
+ if (rc != Success)
+ return rc;
rep.type = X_Reply;
rep.length = 0;
rep.sequenceNumber = client->sequence;
diff --git a/Xext/shape.c b/Xext/shape.c
index 58e3a69..928eeee 100644
--- a/Xext/shape.c
+++ b/Xext/shape.c
@@ -419,12 +419,13 @@ ProcShapeMask (client)
RegionPtr *destRgn;
PixmapPtr pPixmap;
CreateDftPtr createDefault;
+ int rc;
REQUEST_SIZE_MATCH (xShapeMaskReq);
UpdateCurrentTime();
- pWin = SecurityLookupWindow (stuff->dest, client, DixWriteAccess);
- if (!pWin)
- return BadWindow;
+ rc = dixLookupWindow(&pWin, stuff->dest, client, DixWriteAccess);
+ if (rc != Success)
+ return rc;
switch (stuff->destKind) {
case ShapeBounding:
createDefault = CreateBoundingShape;
@@ -822,11 +823,12 @@ ProcShapeSelectInput (client)
WindowPtr pWin;
ShapeEventPtr pShapeEvent, pNewShapeEvent, *pHead;
XID clientResource;
+ int rc;
REQUEST_SIZE_MATCH (xShapeSelectInputReq);
- pWin = SecurityLookupWindow (stuff->window, client, DixWriteAccess);
- if (!pWin)
- return BadWindow;
+ rc = dixLookupWindow(&pWin, stuff->window, client, DixWriteAccess);
+ if (rc != Success)
+ return rc;
pHead = (ShapeEventPtr *)SecurityLookupIDByType(client,
pWin->drawable.id, EventType, DixWriteAccess);
switch (stuff->enable) {
diff --git a/Xext/xprint.c b/Xext/xprint.c
index 669ad27..d8fc517 100644
--- a/Xext/xprint.c
+++ b/Xext/xprint.c
@@ -1852,9 +1852,10 @@ ProcXpStartPage(ClientPtr client)
if(pContext->state & PAGE_STARTED)
return XpErrorBase+XPBadSequence;
- pWin = (WindowPtr)SecurityLookupWindow(stuff->window, client,
- DixWriteAccess);
- if (!pWin || pWin->drawable.pScreen->myNum != pContext->screenNum)
+ result = dixLookupWindow(&pWin, stuff->window, client, DixWriteAccess);
+ if (result != Success)
+ return result;
+ if (pWin->drawable.pScreen->myNum != pContext->screenNum)
return BadWindow;
if((c = (XpStPagePtr)xalloc(sizeof(XpStPageRec))) == (XpStPagePtr)NULL)
diff --git a/dbe/dbe.c b/dbe/dbe.c
index 649143c..69ddf4f 100644
--- a/dbe/dbe.c
+++ b/dbe/dbe.c
@@ -405,11 +405,9 @@ ProcDbeAllocateBackBufferName(ClientPtr
REQUEST_SIZE_MATCH(xDbeAllocateBackBufferNameReq);
/* The window must be valid. */
- if (!(pWin = SecurityLookupWindow(stuff->window, client,
- DixWriteAccess)))
- {
- return(BadWindow);
- }
+ status = dixLookupWindow(&pWin, stuff->window, client, DixWriteAccess);
+ if (status != Success)
+ return status;
/* The window must be InputOutput. */
if (pWin->drawable.class != InputOutput)
@@ -729,11 +727,11 @@ ProcDbeSwapBuffers(ClientPtr client)
/* Check all windows to swap. */
/* Each window must be a valid window - BadWindow. */
- if (!(pWin = SecurityLookupWindow(dbeSwapInfo[i].window, client,
- DixWriteAccess)))
- {
+ error = dixLookupWindow(&pWin, dbeSwapInfo[i].window, client,
+ DixWriteAccess);
+ if (error != Success) {
DEALLOCATE_LOCAL(swapInfo);
- return(BadWindow);
+ return error;
}
/* Each window must be double-buffered - BadMatch. */
diff --git a/dix/devices.c b/dix/devices.c
index e6a5049..9f42184 100644
--- a/dix/devices.c
+++ b/dix/devices.c
@@ -1840,16 +1840,16 @@ ProcGetMotionEvents(ClientPtr client)
WindowPtr pWin;
xTimecoord * coords = (xTimecoord *) NULL;
xGetMotionEventsReply rep;
- int i, count, xmin, xmax, ymin, ymax;
+ int i, count, xmin, xmax, ymin, ymax, rc;
unsigned long nEvents;
DeviceIntPtr mouse = inputInfo.pointer;
TimeStamp start, stop;
REQUEST(xGetMotionEventsReq);
REQUEST_SIZE_MATCH(xGetMotionEventsReq);
- pWin = SecurityLookupWindow(stuff->window, client, TRUE);
- if (!pWin)
- return BadWindow;
+ rc = dixLookupWindow(&pWin, stuff->window, client, DixUnknownAccess);
+ if (rc != Success)
+ return rc;
if (mouse->valuator->motionHintWindow)
MaybeStopHint(mouse, client);
rep.type = X_Reply;
diff --git a/dix/dispatch.c b/dix/dispatch.c
index 0421886..3060a4c 100644
--- a/dix/dispatch.c
+++ b/dix/dispatch.c
@@ -554,17 +554,16 @@ ProcBadRequest(ClientPtr client)
int
ProcCreateWindow(ClientPtr client)
{
- register WindowPtr pParent, pWin;
+ WindowPtr pParent, pWin;
REQUEST(xCreateWindowReq);
- int result;
- int len;
+ int result, len, rc;
REQUEST_AT_LEAST_SIZE(xCreateWindowReq);
LEGAL_NEW_RESOURCE(stuff->wid, client);
- if (!(pParent = (WindowPtr)SecurityLookupWindow(stuff->parent, client,
- DixWriteAccess)))
- return BadWindow;
+ rc = dixLookupWindow(&pParent, stuff->parent, client, DixWriteAccess);
+ if (rc != Success)
+ return rc;
len = client->req_len - (sizeof(xCreateWindowReq) >> 2);
if (Ones(stuff->mask) != len)
return BadLength;
@@ -597,16 +596,15 @@ ProcCreateWindow(ClientPtr client)
int
ProcChangeWindowAttributes(register ClientPtr client)
{
- register WindowPtr pWin;
+ WindowPtr pWin;
REQUEST(xChangeWindowAttributesReq);
register int result;
- int len;
+ int len, rc;
REQUEST_AT_LEAST_SIZE(xChangeWindowAttributesReq);
- pWin = (WindowPtr)SecurityLookupWindow(stuff->window, client,
- DixWriteAccess);
- if (!pWin)
- return(BadWindow);
+ rc = dixLookupWindow(&pWin, stuff->window, client, DixWriteAccess);
+ if (rc != Success)
+ return rc;
len = client->req_len - (sizeof(xChangeWindowAttributesReq) >> 2);
if (len != Ones(stuff->valueMask))
return BadLength;
@@ -623,15 +621,15 @@ ProcChangeWindowAttributes(register Clie
int
ProcGetWindowAttributes(register ClientPtr client)
{
- register WindowPtr pWin;
+ WindowPtr pWin;
REQUEST(xResourceReq);
xGetWindowAttributesReply wa;
+ int rc;
REQUEST_SIZE_MATCH(xResourceReq);
- pWin = (WindowPtr)SecurityLookupWindow(stuff->id, client,
- DixReadAccess);
- if (!pWin)
- return(BadWindow);
+ rc = dixLookupWindow(&pWin, stuff->id, client, DixReadAccess);
+ if (rc != Success)
+ return rc;
GetWindowAttributes(pWin, client, &wa);
WriteReplyToClient(client, sizeof(xGetWindowAttributesReply), &wa);
return(client->noClientException);
@@ -640,14 +638,14 @@ ProcGetWindowAttributes(register ClientP
int
ProcDestroyWindow(register ClientPtr client)
{
- register WindowPtr pWin;
+ WindowPtr pWin;
REQUEST(xResourceReq);
+ int rc;
REQUEST_SIZE_MATCH(xResourceReq);
- pWin = (WindowPtr)SecurityLookupWindow(stuff->id, client,
- DixDestroyAccess);
- if (!pWin)
- return(BadWindow);
+ rc = dixLookupWindow(&pWin, stuff->id, client, DixDestroyAccess);
+ if (rc != Success)
+ return rc;
if (pWin->parent)
FreeResource(stuff->id, RT_NONE);
return(client->noClientException);
@@ -656,14 +654,14 @@ ProcDestroyWindow(register ClientPtr cli
int
ProcDestroySubwindows(register ClientPtr client)
{
- register WindowPtr pWin;
+ WindowPtr pWin;
REQUEST(xResourceReq);
+ int rc;
REQUEST_SIZE_MATCH(xResourceReq);
- pWin = (WindowPtr)SecurityLookupWindow(stuff->id, client,
- DixDestroyAccess);
- if (!pWin)
- return(BadWindow);
+ rc = dixLookupWindow(&pWin, stuff->id, client, DixDestroyAccess);
+ if (rc != Success)
+ return rc;
DestroySubwindows(pWin, client);
return(client->noClientException);
}
@@ -671,15 +669,14 @@ ProcDestroySubwindows(register ClientPtr
int
ProcChangeSaveSet(register ClientPtr client)
{
- register WindowPtr pWin;
+ WindowPtr pWin;
REQUEST(xChangeSaveSetReq);
- register int result;
+ register int result, rc;
REQUEST_SIZE_MATCH(xChangeSaveSetReq);
- pWin = (WindowPtr)SecurityLookupWindow(stuff->window, client,
- DixReadAccess);
- if (!pWin)
- return(BadWindow);
+ rc = dixLookupWindow(&pWin, stuff->window, client, DixReadAccess);
+ if (rc != Success)
+ return rc;
if (client->clientAsMask == (CLIENT_BITS(pWin->drawable.id)))
return BadMatch;
if ((stuff->mode == SetModeInsert) || (stuff->mode == SetModeDelete))
@@ -700,19 +697,17 @@ ProcChangeSaveSet(register ClientPtr cli
int
ProcReparentWindow(register ClientPtr client)
{
- register WindowPtr pWin, pParent;
+ WindowPtr pWin, pParent;
REQUEST(xReparentWindowReq);
- register int result;
+ register int result, rc;
REQUEST_SIZE_MATCH(xReparentWindowReq);
- pWin = (WindowPtr)SecurityLookupWindow(stuff->window, client,
- DixWriteAccess);
- if (!pWin)
- return(BadWindow);
- pParent = (WindowPtr)SecurityLookupWindow(stuff->parent, client,
- DixWriteAccess);
- if (!pParent)
- return(BadWindow);
+ rc = dixLookupWindow(&pWin, stuff->window, client, DixWriteAccess);
+ if (rc != Success)
+ return rc;
+ rc = dixLookupWindow(&pParent, stuff->parent, client, DixWriteAccess);
+ if (rc != Success)
+ return rc;
if (SAME_SCREENS(pWin->drawable, pParent->drawable))
{
if ((pWin->backgroundState == ParentRelative) &&
@@ -735,14 +730,14 @@ ProcReparentWindow(register ClientPtr cl
int
ProcMapWindow(register ClientPtr client)
{
- register WindowPtr pWin;
+ WindowPtr pWin;
REQUEST(xResourceReq);
+ int rc;
REQUEST_SIZE_MATCH(xResourceReq);
- pWin = (WindowPtr)SecurityLookupWindow(stuff->id, client,
- DixReadAccess);
- if (!pWin)
- return(BadWindow);
+ rc = dixLookupWindow(&pWin, stuff->id, client, DixReadAccess);
+ if (rc != Success)
+ return rc;
MapWindow(pWin, client);
/* update cache to say it is mapped */
return(client->noClientException);
@@ -751,14 +746,14 @@ ProcMapWindow(register ClientPtr client)
int
ProcMapSubwindows(register ClientPtr client)
{
- register WindowPtr pWin;
+ WindowPtr pWin;
REQUEST(xResourceReq);
+ int rc;
REQUEST_SIZE_MATCH(xResourceReq);
- pWin = (WindowPtr)SecurityLookupWindow( stuff->id, client,
- DixReadAccess);
- if (!pWin)
- return(BadWindow);
+ rc = dixLookupWindow(&pWin, stuff->id, client, DixReadAccess);
+ if (rc != Success)
+ return rc;
MapSubwindows(pWin, client);
/* update cache to say it is mapped */
return(client->noClientException);
@@ -767,14 +762,14 @@ ProcMapSubwindows(register ClientPtr cli
int
ProcUnmapWindow(register ClientPtr client)
{
- register WindowPtr pWin;
+ WindowPtr pWin;
REQUEST(xResourceReq);
+ int rc;
REQUEST_SIZE_MATCH(xResourceReq);
- pWin = (WindowPtr)SecurityLookupWindow( stuff->id, client,
- DixReadAccess);
- if (!pWin)
- return(BadWindow);
+ rc = dixLookupWindow(&pWin, stuff->id, client, DixReadAccess);
+ if (rc != Success)
+ return rc;
UnmapWindow(pWin, FALSE);
/* update cache to say it is mapped */
return(client->noClientException);
@@ -783,14 +778,14 @@ ProcUnmapWindow(register ClientPtr clien
int
ProcUnmapSubwindows(register ClientPtr client)
{
- register WindowPtr pWin;
+ WindowPtr pWin;
REQUEST(xResourceReq);
+ int rc;
REQUEST_SIZE_MATCH(xResourceReq);
- pWin = (WindowPtr)SecurityLookupWindow( stuff->id, client,
- DixReadAccess);
- if (!pWin)
- return(BadWindow);
+ rc = dixLookupWindow(&pWin, stuff->id, client, DixReadAccess);
+ if (rc != Success)
+ return rc;
UnmapSubwindows(pWin);
return(client->noClientException);
}
@@ -798,16 +793,15 @@ ProcUnmapSubwindows(register ClientPtr c
int
ProcConfigureWindow(register ClientPtr client)
{
- register WindowPtr pWin;
+ WindowPtr pWin;
REQUEST(xConfigureWindowReq);
register int result;
- int len;
+ int len, rc;
REQUEST_AT_LEAST_SIZE(xConfigureWindowReq);
- pWin = (WindowPtr)SecurityLookupWindow( stuff->window, client,
- DixWriteAccess);
- if (!pWin)
- return(BadWindow);
+ rc = dixLookupWindow(&pWin, stuff->window, client, DixWriteAccess);
+ if (rc != Success)
+ return rc;
len = client->req_len - (sizeof(xConfigureWindowReq) >> 2);
if (Ones((Mask)stuff->mask) != len)
return BadLength;
@@ -822,8 +816,9 @@ ProcConfigureWindow(register ClientPtr c
int
ProcCirculateWindow(register ClientPtr client)
{
- register WindowPtr pWin;
+ WindowPtr pWin;
REQUEST(xCirculateWindowReq);
+ int rc;
REQUEST_SIZE_MATCH(xCirculateWindowReq);
if ((stuff->direction != RaiseLowest) &&
@@ -832,10 +827,9 @@ ProcCirculateWindow(register ClientPtr c
client->errorValue = stuff->direction;
return BadValue;
}
- pWin = (WindowPtr)SecurityLookupWindow(stuff->window, client,
- DixWriteAccess);
- if (!pWin)
- return(BadWindow);
+ rc = dixLookupWindow(&pWin, stuff->window, client, DixWriteAccess);
+ if (rc != Success)
+ return rc;
CirculateWindow(pWin, (int)stuff->direction, client);
return(client->noClientException);
}
@@ -903,16 +897,15 @@ int
ProcQueryTree(register ClientPtr client)
{
xQueryTreeReply reply;
- int numChildren = 0;
- register WindowPtr pChild, pWin, pHead;
+ int rc, numChildren = 0;
+ WindowPtr pChild, pWin, pHead;
Window *childIDs = (Window *)NULL;
REQUEST(xResourceReq);
REQUEST_SIZE_MATCH(xResourceReq);
- pWin = (WindowPtr)SecurityLookupWindow(stuff->id, client,
- DixReadAccess);
- if (!pWin)
- return(BadWindow);
+ rc = dixLookupWindow(&pWin, stuff->id, client, DixReadAccess);
+ if (rc != Success)
+ return rc;
reply.type = X_Reply;
reply.root = WindowTable[pWin->drawable.pScreen->myNum]->drawable.id;
reply.sequenceNumber = client->sequence;
@@ -1025,10 +1018,9 @@ ProcSetSelectionOwner(register ClientPtr
return Success;
if (stuff->window != None)
{
- pWin = (WindowPtr)SecurityLookupWindow(stuff->window, client,
- DixReadAccess);
- if (!pWin)
- return(BadWindow);
+ int rc = dixLookupWindow(&pWin, stuff->window, client, DixReadAccess);
+ if (rc != Success)
+ return rc;
}
else
pWin = (WindowPtr)None;
@@ -1142,12 +1134,12 @@ ProcConvertSelection(register ClientPtr
xEvent event;
WindowPtr pWin;
REQUEST(xConvertSelectionReq);
+ int rc;
REQUEST_SIZE_MATCH(xConvertSelectionReq);
- pWin = (WindowPtr)SecurityLookupWindow(stuff->requestor, client,
- DixReadAccess);
- if (!pWin)
- return(BadWindow);
+ rc = dixLookupWindow(&pWin, stuff->requestor, client, DixReadAccess);
+ if (rc != Success)
+ return rc;
paramsOkay = (ValidAtom(stuff->selection) && ValidAtom(stuff->target));
if (stuff->property != None)
@@ -1262,18 +1254,17 @@ ProcTranslateCoords(register ClientPtr c
{
REQUEST(xTranslateCoordsReq);
- register WindowPtr pWin, pDst;
+ WindowPtr pWin, pDst;
xTranslateCoordsReply rep;
+ int rc;
REQUEST_SIZE_MATCH(xTranslateCoordsReq);
- pWin = (WindowPtr)SecurityLookupWindow(stuff->srcWid, client,
- DixReadAccess);
- if (!pWin)
- return(BadWindow);
- pDst = (WindowPtr)SecurityLookupWindow(stuff->dstWid, client,
- DixReadAccess);
- if (!pDst)
- return(BadWindow);
+ rc = dixLookupWindow(&pWin, stuff->srcWid, client, DixReadAccess);
+ if (rc != Success)
+ return rc;
+ rc = dixLookupWindow(&pDst, stuff->dstWid, client, DixReadAccess);
+ if (rc != Success)
+ return rc;
rep.type = X_Reply;
rep.length = 0;
rep.sequenceNumber = client->sequence;
@@ -1762,13 +1753,13 @@ int
ProcClearToBackground(register ClientPtr client)
{
REQUEST(xClearAreaReq);
- register WindowPtr pWin;
+ WindowPtr pWin;
+ int rc;
REQUEST_SIZE_MATCH(xClearAreaReq);
- pWin = (WindowPtr)SecurityLookupWindow(stuff->window, client,
- DixWriteAccess);
- if (!pWin)
- return(BadWindow);
+ rc = dixLookupWindow(&pWin, stuff->window, client, DixWriteAccess);
+ if (rc != Success)
+ return rc;
if (pWin->drawable.class == InputOnly)
{
client->errorValue = stuff->window;
@@ -2496,7 +2487,7 @@ ProcCreateColormap(register ClientPtr cl
VisualPtr pVisual;
ColormapPtr pmap;
Colormap mid;
- register WindowPtr pWin;
+ WindowPtr pWin;
ScreenPtr pScreen;
REQUEST(xCreateColormapReq);
int i, result;
@@ -2510,10 +2501,9 @@ ProcCreateColormap(register ClientPtr cl
}
mid = stuff->mid;
LEGAL_NEW_RESOURCE(mid, client);
- pWin = (WindowPtr)SecurityLookupWindow(stuff->window, client,
- DixReadAccess);
- if (!pWin)
- return(BadWindow);
+ result = dixLookupWindow(&pWin, stuff->window, client, DixReadAccess);
+ if (result != Success)
+ return result;
pScreen = pWin->drawable.pScreen;
for (i = 0, pVisual = pScreen->visuals;
@@ -2631,16 +2621,14 @@ int
ProcListInstalledColormaps(register ClientPtr client)
{
xListInstalledColormapsReply *preply;
- int nummaps;
+ int nummaps, rc;
WindowPtr pWin;
REQUEST(xResourceReq);
REQUEST_SIZE_MATCH(xResourceReq);
- pWin = (WindowPtr)SecurityLookupWindow(stuff->id, client,
- DixReadAccess);
-
- if (!pWin)
- return(BadWindow);
+ rc = dixLookupWindow(&pWin, stuff->id, client, DixReadAccess);
+ if (rc != Success)
+ return rc;
preply = (xListInstalledColormapsReply *)
ALLOCATE_LOCAL(sizeof(xListInstalledColormapsReply) +
diff --git a/dix/events.c b/dix/events.c
index c7cf73e..0053f42 100644
--- a/dix/events.c
+++ b/dix/events.c
@@ -2228,16 +2228,15 @@ static int
XineramaWarpPointer(ClientPtr client)
{
WindowPtr dest = NULL;
- int x, y;
+ int x, y, rc;
REQUEST(xWarpPointerReq);
- if (stuff->dstWid != None)
- {
- dest = SecurityLookupWindow(stuff->dstWid, client, DixReadAccess);
- if (!dest)
- return BadWindow;
+ if (stuff->dstWid != None) {
+ rc = dixLookupWindow(&dest, stuff->dstWid, client, DixReadAccess);
+ if (rc != Success)
+ return rc;
}
x = sprite.hotPhys.x;
y = sprite.hotPhys.y;
@@ -2248,8 +2247,9 @@ XineramaWarpPointer(ClientPtr client)
XID winID = stuff->srcWid;
WindowPtr source;
- source = SecurityLookupWindow(winID, client, DixReadAccess);
- if (!source) return BadWindow;
+ rc = dixLookupWindow(&source, winID, client, DixReadAccess);
+ if (rc != Success)
+ return rc;
winX = source->drawable.x;
winY = source->drawable.y;
@@ -2301,7 +2301,7 @@ int
ProcWarpPointer(ClientPtr client)
{
WindowPtr dest = NULL;
- int x, y;
+ int x, y, rc;
ScreenPtr newScreen;
REQUEST(xWarpPointerReq);
@@ -2313,11 +2313,10 @@ ProcWarpPointer(ClientPtr client)
return XineramaWarpPointer(client);
#endif
- if (stuff->dstWid != None)
- {
- dest = SecurityLookupWindow(stuff->dstWid, client, DixReadAccess);
- if (!dest)
- return BadWindow;
+ if (stuff->dstWid != None) {
+ rc = dixLookupWindow(&dest, stuff->dstWid, client, DixReadAccess);
+ if (rc != Success)
+ return rc;
}
x = sprite.hotPhys.x;
y = sprite.hotPhys.y;
@@ -2328,8 +2327,9 @@ ProcWarpPointer(ClientPtr client)
XID winID = stuff->srcWid;
WindowPtr source;
- source = SecurityLookupWindow(winID, client, DixReadAccess);
- if (!source) return BadWindow;
+ rc = dixLookupWindow(&source, winID, client, DixReadAccess);
+ if (rc != Success)
+ return rc;
winX = source->drawable.x;
winY = source->drawable.y;
@@ -3532,8 +3532,8 @@ SetInputFocus(
Bool followOK)
{
register FocusClassPtr focus;
- register WindowPtr focusWin;
- int mode;
+ WindowPtr focusWin;
+ int mode, rc;
TimeStamp time;
UpdateCurrentTime();
@@ -3550,14 +3550,12 @@ SetInputFocus(
focusWin = (WindowPtr)(long)focusID;
else if ((focusID == FollowKeyboard) && followOK)
focusWin = inputInfo.keyboard->focus->win;
- else if (!(focusWin = SecurityLookupWindow(focusID, client,
- DixReadAccess)))
- return BadWindow;
- else
- {
+ else {
+ rc = dixLookupWindow(&focusWin, focusID, client, DixReadAccess);
+ if (rc != Success)
+ return rc;
/* It is a match error to try to set the input focus to an
unviewable window. */
-
if(!focusWin->realized)
return(BadMatch);
}
@@ -3646,6 +3644,7 @@ ProcGrabPointer(ClientPtr client)
CursorPtr cursor, oldCursor;
REQUEST(xGrabPointerReq);
TimeStamp time;
+ int rc;
REQUEST_SIZE_MATCH(xGrabPointerReq);
UpdateCurrentTime();
@@ -3671,17 +3670,17 @@ ProcGrabPointer(ClientPtr client)
client->errorValue = stuff->eventMask;
return BadValue;
}
- pWin = SecurityLookupWindow(stuff->grabWindow, client, DixReadAccess);
- if (!pWin)
- return BadWindow;
+ rc = dixLookupWindow(&pWin, stuff->grabWindow, client, DixReadAccess);
+ if (rc != Success)
+ return rc;
if (stuff->confineTo == None)
confineTo = NullWindow;
else
{
- confineTo = SecurityLookupWindow(stuff->confineTo, client,
- DixReadAccess);
- if (!confineTo)
- return BadWindow;
+ rc = dixLookupWindow(&confineTo, stuff->confineTo, client,
+ DixReadAccess);
+ if (rc != Success)
+ return rc;
}
if (stuff->cursor == None)
cursor = NullCursor;
@@ -3812,9 +3811,10 @@ GrabDevice(register ClientPtr client, re
unsigned this_mode, unsigned other_mode, Window grabWindow,
unsigned ownerEvents, Time ctime, Mask mask, CARD8 *status)
{
- register WindowPtr pWin;
+ WindowPtr pWin;
register GrabPtr grab;
TimeStamp time;
+ int rc;
UpdateCurrentTime();
if ((this_mode != GrabModeSync) && (this_mode != GrabModeAsync))
@@ -3832,9 +3832,9 @@ GrabDevice(register ClientPtr client, re
client->errorValue = ownerEvents;
return BadValue;
}
- pWin = SecurityLookupWindow(grabWindow, client, DixReadAccess);
- if (!pWin)
- return BadWindow;
+ rc = dixLookupWindow(&pWin, grabWindow, client, DixReadAccess);
+ if (rc != Success)
+ return rc;
time = ClientTimeToServerTime(ctime);
grab = dev->grab;
if (grab && !SameClient(grab, client))
@@ -3918,11 +3918,12 @@ ProcQueryPointer(ClientPtr client)
WindowPtr pWin, t;
REQUEST(xResourceReq);
DeviceIntPtr mouse = inputInfo.pointer;
+ int rc;
REQUEST_SIZE_MATCH(xResourceReq);
- pWin = SecurityLookupWindow(stuff->id, client, DixReadAccess);
- if (!pWin)
- return BadWindow;
+ rc = dixLookupWindow(&pWin, stuff->id, client, DixReadAccess);
+ if (rc != Success)
+ return rc;
if (mouse->valuator->motionHintWindow)
MaybeStopHint(mouse, client);
rep.type = X_Reply;
@@ -4086,8 +4087,8 @@ ProcSendEvent(ClientPtr client)
effectiveFocus = pWin = inputFocus;
}
else
- pWin = SecurityLookupWindow(stuff->destination, client,
- DixReadAccess);
+ dixLookupWindow(&pWin, stuff->destination, client, DixReadAccess);
+
if (!pWin)
return BadWindow;
if ((stuff->propagate != xFalse) && (stuff->propagate != xTrue))
@@ -4123,11 +4124,12 @@ ProcUngrabKey(ClientPtr client)
WindowPtr pWin;
GrabRec tempGrab;
DeviceIntPtr keybd = inputInfo.keyboard;
+ int rc;
REQUEST_SIZE_MATCH(xUngrabKeyReq);
- pWin = SecurityLookupWindow(stuff->grabWindow, client, DixReadAccess);
- if (!pWin)
- return BadWindow;
+ rc = dixLookupWindow(&pWin, stuff->grabWindow, client, DixReadAccess);
+ if (rc != Success)
+ return rc;
if (((stuff->key > keybd->key->curKeySyms.maxKeyCode) ||
(stuff->key < keybd->key->curKeySyms.minKeyCode))
@@ -4164,6 +4166,7 @@ ProcGrabKey(ClientPtr client)
REQUEST(xGrabKeyReq);
GrabPtr grab;
DeviceIntPtr keybd = inputInfo.keyboard;
+ int rc;
REQUEST_SIZE_MATCH(xGrabKeyReq);
if ((stuff->ownerEvents != xTrue) && (stuff->ownerEvents != xFalse))
@@ -4196,9 +4199,9 @@ ProcGrabKey(ClientPtr client)
client->errorValue = stuff->modifiers;
return BadValue;
}
- pWin = SecurityLookupWindow(stuff->grabWindow, client, DixReadAccess);
- if (!pWin)
- return BadWindow;
+ rc = dixLookupWindow(&pWin, stuff->grabWindow, client, DixReadAccess);
+ if (rc != Success)
+ return rc;
grab = CreateGrab(client->index, keybd, pWin,
(Mask)(KeyPressMask | KeyReleaseMask), (Bool)stuff->ownerEvents,
@@ -4218,6 +4221,7 @@ ProcGrabButton(ClientPtr client)
REQUEST(xGrabButtonReq);
CursorPtr cursor;
GrabPtr grab;
+ int rc;
REQUEST_SIZE_MATCH(xGrabButtonReq);
if ((stuff->pointerMode != GrabModeSync) &&
@@ -4248,16 +4252,16 @@ ProcGrabButton(ClientPtr client)
client->errorValue = stuff->eventMask;
return BadValue;
}
- pWin = SecurityLookupWindow(stuff->grabWindow, client, DixReadAccess);
- if (!pWin)
- return BadWindow;
+ rc = dixLookupWindow(&pWin, stuff->grabWindow, client, DixReadAccess);
+ if (rc != Success)
+ return rc;
if (stuff->confineTo == None)
confineTo = NullWindow;
else {
- confineTo = SecurityLookupWindow(stuff->confineTo, client,
- DixReadAccess);
- if (!confineTo)
- return BadWindow;
+ rc = dixLookupWindow(&confineTo, stuff->confineTo, client,
+ DixReadAccess);
+ if (rc != Success)
+ return rc;
}
if (stuff->cursor == None)
cursor = NullCursor;
@@ -4289,6 +4293,7 @@ ProcUngrabButton(ClientPtr client)
REQUEST(xUngrabButtonReq);
WindowPtr pWin;
GrabRec tempGrab;
+ int rc;
REQUEST_SIZE_MATCH(xUngrabButtonReq);
if ((stuff->modifiers != AnyModifier) &&
@@ -4297,9 +4302,9 @@ ProcUngrabButton(ClientPtr client)
client->errorValue = stuff->modifiers;
return BadValue;
}
- pWin = SecurityLookupWindow(stuff->grabWindow, client, DixReadAccess);
- if (!pWin)
- return BadWindow;
+ rc = dixLookupWindow(&pWin, stuff->grabWindow, client, DixReadAccess);
+ if (rc != Success)
+ return rc;
tempGrab.resource = client->clientAsMask;
tempGrab.device = inputInfo.pointer;
tempGrab.window = pWin;
diff --git a/dix/property.c b/dix/property.c
index 5c1e957..d402849 100644
--- a/dix/property.c
+++ b/dix/property.c
@@ -94,7 +94,7 @@ PrintPropertys(WindowPtr pWin)
int
ProcRotateProperties(ClientPtr client)
{
- int i, j, delta;
+ int i, j, delta, rc;
REQUEST(xRotatePropertiesReq);
WindowPtr pWin;
register Atom * atoms;
@@ -104,10 +104,9 @@ ProcRotateProperties(ClientPtr client)
REQUEST_FIXED_SIZE(xRotatePropertiesReq, stuff->nAtoms << 2);
UpdateCurrentTime();
- pWin = (WindowPtr) SecurityLookupWindow(stuff->window, client,
- DixWriteAccess);
- if (!pWin)
- return(BadWindow);
+ rc = dixLookupWindow(&pWin, stuff->window, client, DixWriteAccess);
+ if (rc != Success)
+ return rc;
if (!stuff->nAtoms)
return(Success);
atoms = (Atom *) & stuff[1];
@@ -181,9 +180,7 @@ ProcChangeProperty(ClientPtr client)
WindowPtr pWin;
char format, mode;
unsigned long len;
- int sizeInBytes;
- int totalSize;
- int err;
+ int sizeInBytes, totalSize, err;
REQUEST(xChangePropertyReq);
REQUEST_AT_LEAST_SIZE(xChangePropertyReq);
@@ -208,10 +205,9 @@ ProcChangeProperty(ClientPtr client)
totalSize = len * sizeInBytes;
REQUEST_FIXED_SIZE(xChangePropertyReq, totalSize);
- pWin = (WindowPtr)SecurityLookupWindow(stuff->window, client,
- DixWriteAccess);
- if (!pWin)
- return(BadWindow);
+ err = dixLookupWindow(&pWin, stuff->window, client, DixWriteAccess);
+ if (err != Success)
+ return err;
if (!ValidAtom(stuff->property))
{
client->errorValue = stuff->property;
@@ -445,7 +441,7 @@ int
ProcGetProperty(ClientPtr client)
{
PropertyPtr pProp, prevProp;
- unsigned long n, len, ind;
+ unsigned long n, len, ind, rc;
WindowPtr pWin;
xGetPropertyReply reply;
Mask access_mode = DixReadAccess;
@@ -454,10 +450,9 @@ ProcGetProperty(ClientPtr client)
REQUEST_SIZE_MATCH(xGetPropertyReq);
if (stuff->delete)
UpdateCurrentTime();
- pWin = (WindowPtr)SecurityLookupWindow(stuff->window, client,
- DixReadAccess);
- if (!pWin)
- return BadWindow;
+ rc = dixLookupWindow(&pWin, stuff->window, client, DixReadAccess);
+ if (rc != Success)
+ return rc;
if (!ValidAtom(stuff->property))
{
@@ -585,16 +580,15 @@ ProcListProperties(ClientPtr client)
{
Atom *pAtoms = NULL, *temppAtoms;
xListPropertiesReply xlpr;
- int numProps = 0;
+ int rc, numProps = 0;
WindowPtr pWin;
PropertyPtr pProp;
REQUEST(xResourceReq);
REQUEST_SIZE_MATCH(xResourceReq);
- pWin = (WindowPtr)SecurityLookupWindow(stuff->id, client,
- DixReadAccess);
- if (!pWin)
- return(BadWindow);
+ rc = dixLookupWindow(&pWin, stuff->id, client, DixReadAccess);
+ if (rc != Success)
+ return rc;
pProp = wUserProps (pWin);
while (pProp)
@@ -636,10 +630,9 @@ ProcDeleteProperty(register ClientPtr cl
REQUEST_SIZE_MATCH(xDeletePropertyReq);
UpdateCurrentTime();
- pWin = (WindowPtr)SecurityLookupWindow(stuff->window, client,
- DixWriteAccess);
- if (!pWin)
- return(BadWindow);
+ result = dixLookupWindow(&pWin, stuff->window, client, DixWriteAccess);
+ if (result != Success)
+ return result;
if (!ValidAtom(stuff->property))
{
client->errorValue = stuff->property;
diff --git a/hw/darwin/quartz/applewm.c b/hw/darwin/quartz/applewm.c
index a9d8b56..224d6c5 100644
--- a/hw/darwin/quartz/applewm.c
+++ b/hw/darwin/quartz/applewm.c
@@ -490,11 +490,9 @@ ProcAppleWMSetWindowLevel(
REQUEST_SIZE_MATCH(xAppleWMSetWindowLevelReq);
- if (!(pWin = SecurityLookupWindow((Drawable)stuff->window,
- client, DixReadAccess)))
- {
+ if (Success != dixLookupWindow(&pWin, stuff->window, client,
+ DixReadAccess))
return BadValue;
- }
if (stuff->level < 0 || stuff->level >= AppleWMNumWindowLevels) {
return BadValue;
@@ -602,11 +600,9 @@ ProcAppleWMFrameDraw(
REQUEST_AT_LEAST_SIZE(xAppleWMFrameDrawReq);
- if (!(pWin = SecurityLookupWindow((Drawable)stuff->window,
- client, DixReadAccess)))
- {
+ if (Success != dixLookupWindow(&pWin, stuff->window, client,
+ DixReadAccess))
return BadValue;
- }
ir = make_box (stuff->ix, stuff->iy, stuff->iw, stuff->ih);
or = make_box (stuff->ox, stuff->oy, stuff->ow, stuff->oh);
diff --git a/hw/dmx/dmx.c b/hw/dmx/dmx.c
index 02e8b1e..b7c81ee 100644
--- a/hw/dmx/dmx.c
+++ b/hw/dmx/dmx.c
@@ -286,8 +286,8 @@ static int ProcDMXForceWindowCreation(Cl
return -1; /* BadWindow */
FOR_NSCREENS(i) {
- if (!(pWin = SecurityLookupWindow(win->info[i].id, client,
- DixReadAccess)))
+ if (Success != dixLookupWindow(&pWin, win->info[i].id, client,
+ DixReadAccess))
return -1; /* BadWindow */
dmxForceWindowCreation(pWin);
@@ -296,8 +296,8 @@ static int ProcDMXForceWindowCreation(Cl
}
#endif
- if (!(pWin = SecurityLookupWindow(stuff->window, client,
- DixReadAccess)))
+ if (Success != dixLookupWindow(&pWin, stuff->window, client,
+ DixReadAccess))
return -1; /* BadWindow */
dmxForceWindowCreation(pWin);
@@ -560,8 +560,8 @@ static int dmxPopulatePanoramiX(ClientPt
return -1; /* BadWindow */
FOR_NSCREENS(i) {
- if (!(pWin = SecurityLookupWindow(win->info[i].id, client,
- DixReadAccess)))
+ if (Success != dixLookupWindow(&pWin, win->info[i].id, client,
+ DixReadAccess))
return -1; /* BadWindow */
if (dmxGetWindowAttributes(pWin, &attr)) {
screens[count] = attr.screen;
@@ -587,7 +587,7 @@ static int dmxPopulate(ClientPtr client,
pos, vis);
#endif
- if (!(pWin = SecurityLookupWindow(window, client, DixReadAccess)))
+ if (Success != dixLookupWindow(&pWin, window, client, DixReadAccess))
return -1; /* BadWindow */
dmxGetWindowAttributes(pWin, &attr);
diff --git a/hw/dmx/glxProxy/glxcmds.c b/hw/dmx/glxProxy/glxcmds.c
index 20a02a1..aa9d831 100644
--- a/hw/dmx/glxProxy/glxcmds.c
+++ b/hw/dmx/glxProxy/glxcmds.c
@@ -1137,9 +1137,7 @@ static int MakeCurrent(__GLXclientState
}
#ifdef PANORAMIX
else if (pXinDraw) {
- pWin = (WindowPtr)SecurityLookupWindow(pXinDraw->info[s].id,
- client,
- DixReadAccess);
+ dixLookupWindow(&pWin, pXinDraw->info[s].id, client, DixReadAccess);
}
#endif
else if (pGlxWindow) {
@@ -1195,9 +1193,8 @@ static int MakeCurrent(__GLXclientState
}
#ifdef PANORAMIX
else if (pXinReadDraw) {
- pReadWin = (WindowPtr)SecurityLookupWindow(pXinReadDraw->info[s].id,
- client,
- DixReadAccess);
+ dixLookupWindow(&pReadWin, pXinReadDraw->info[s].id, client,
+ DixReadAccess);
}
#endif
else if (pGlxReadWindow) {
@@ -2058,9 +2055,7 @@ int __glXDoSwapBuffers(__GLXclientState
}
#ifdef PANORAMIX
else if (pXinDraw) {
- pWin = (WindowPtr)SecurityLookupWindow(pXinDraw->info[s].id,
- client,
- DixReadAccess);
+ dixLookupWindow(&pWin, pXinDraw->info[s].id, client, DixReadAccess);
}
#endif
else if (pGlxWindow) {
@@ -3359,9 +3354,8 @@ int __glXGetDrawableAttributes(__GLXclie
return __glXBadDrawable;
}
- pWin = (WindowPtr)SecurityLookupWindow(pXinDraw->info[screen].id,
- client,
- DixReadAccess);
+ dixLookupWindow(&pWin, pXinDraw->info[screen].id, client,
+ DixReadAccess);
}
#endif
@@ -3521,9 +3515,8 @@ int __glXChangeDrawableAttributes(__GLXc
return __glXBadDrawable;
}
- pWin = (WindowPtr)SecurityLookupWindow(pXinDraw->info[screen].id,
- client,
- DixReadAccess);
+ dixLookupWindow(&pWin, pXinDraw->info[screen].id, client,
+ DixReadAccess);
}
#endif
diff --git a/hw/xwin/winclipboardwrappers.c b/hw/xwin/winclipboardwrappers.c
index e9bcea9..825d3dc 100755
--- a/hw/xwin/winclipboardwrappers.c
+++ b/hw/xwin/winclipboardwrappers.c
@@ -344,13 +344,11 @@ winProcSetSelectionOwner (ClientPtr clie
if (None != stuff->window)
{
/* Grab the Window from the request */
- pWindow = (WindowPtr) SecurityLookupWindow (stuff->window, client,
- DixReadAccess);
- if (!pWindow)
- {
+ int rc = dixLookupWindow(&pWindow, stuff->window, client, DixReadAccess);
+ if (rc != Success) {
ErrorF ("winProcSetSelectionOwner - Found BadWindow, aborting.\n");
goto winProcSetSelectionOwner_Done;
- }
+ }
}
/* Now we either have a valid window or None */
diff --git a/hw/xwin/winwindowswm.c b/hw/xwin/winwindowswm.c
index ac92e26..e1994de 100755
--- a/hw/xwin/winwindowswm.c
+++ b/hw/xwin/winwindowswm.c
@@ -441,7 +441,7 @@ ProcWindowsWMFrameDraw (register ClientP
WindowPtr pWin;
win32RootlessWindowPtr pRLWinPriv;
RECT rcNew;
- int nCmdShow;
+ int nCmdShow, rc;
RegionRec newShape;
ScreenPtr pScreen;
@@ -450,11 +450,9 @@ ProcWindowsWMFrameDraw (register ClientP
#if CYGMULTIWINDOW_DEBUG
ErrorF ("ProcWindowsWMFrameDraw\n");
#endif
- if (!(pWin = SecurityLookupWindow((Drawable)stuff->window,
- client, DixReadAccess)))
- {
- return BadValue;
- }
+ rc = dixLookupWindow(&pWin, stuff->window, client, DixReadAccess);
+ if (rc != Success)
+ return rc;
#if CYGMULTIWINDOW_DEBUG
ErrorF ("ProcWindowsWMFrameDraw - Window found\n");
#endif
@@ -538,6 +536,7 @@ ProcWindowsWMFrameSetTitle(
REQUEST(xWindowsWMFrameSetTitleReq);
WindowPtr pWin;
win32RootlessWindowPtr pRLWinPriv;
+ int rc;
#if CYGMULTIWINDOW_DEBUG
ErrorF ("ProcWindowsWMFrameSetTitle\n");
@@ -545,11 +544,9 @@ ProcWindowsWMFrameSetTitle(
REQUEST_AT_LEAST_SIZE(xWindowsWMFrameSetTitleReq);
- if (!(pWin = SecurityLookupWindow((Drawable)stuff->window,
- client, DixReadAccess)))
- {
- return BadValue;
- }
+ rc = dixLookupWindow(&pWin, stuff->window, client, DixReadAccess);
+ if (rc != Success)
+ return rc;
#if CYGMULTIWINDOW_DEBUG
ErrorF ("ProcWindowsWMFrameSetTitle - Window found\n");
#endif
diff --git a/randr/rrdispatch.c b/randr/rrdispatch.c
index b1ec68b..7f98965 100644
--- a/randr/rrdispatch.c
+++ b/randr/rrdispatch.c
@@ -70,11 +70,12 @@ ProcRRSelectInput (ClientPtr client)
WindowPtr pWin;
RREventPtr pRREvent, *pHead;
XID clientResource;
+ int rc;
REQUEST_SIZE_MATCH(xRRSelectInputReq);
- pWin = SecurityLookupWindow (stuff->window, client, DixWriteAccess);
- if (!pWin)
- return BadWindow;
+ rc = dixLookupWindow(&pWin, stuff->window, client, DixWriteAccess);
+ if (rc != Success)
+ return rc;
pHead = (RREventPtr *)SecurityLookupIDByType(client,
pWin->drawable.id, RREventType,
DixWriteAccess);
diff --git a/randr/rrscreen.c b/randr/rrscreen.c
index f1d8fc5..6f7afaf 100644
--- a/randr/rrscreen.c
+++ b/randr/rrscreen.c
@@ -217,13 +217,12 @@ ProcRRGetScreenSizeRange (ClientPtr clie
WindowPtr pWin;
ScreenPtr pScreen;
rrScrPrivPtr pScrPriv;
+ int rc;
REQUEST_SIZE_MATCH(xRRGetScreenInfoReq);
- pWin = (WindowPtr)SecurityLookupWindow(stuff->window, client,
- DixReadAccess);
-
- if (!pWin)
- return BadWindow;
+ rc = dixLookupWindow(&pWin, stuff->window, client, DixReadAccess);
+ if (rc != Success)
+ return rc;
pScreen = pWin->drawable.pScreen;
pScrPriv = rrGetScrPriv(pScreen);
@@ -268,14 +267,12 @@ ProcRRSetScreenSize (ClientPtr client)
WindowPtr pWin;
ScreenPtr pScreen;
rrScrPrivPtr pScrPriv;
- int i;
+ int i, rc;
REQUEST_SIZE_MATCH(xRRSetScreenSizeReq);
- pWin = (WindowPtr)SecurityLookupWindow(stuff->window, client,
- DixReadAccess);
-
- if (!pWin)
- return BadWindow;
+ rc = dixLookupWindow(&pWin, stuff->window, client, DixReadAccess);
+ if (rc != Success)
+ return rc;
pScreen = pWin->drawable.pScreen;
pScrPriv = rrGetScrPriv(pScreen);
@@ -336,19 +333,16 @@ ProcRRGetScreenResources (ClientPtr clie
rrScrPrivPtr pScrPriv;
CARD8 *extra;
unsigned long extraLen;
- int i;
+ int i, n, rc;
RRCrtc *crtcs;
RROutput *outputs;
xRRModeInfo *modeinfos;
CARD8 *names;
- int n;
REQUEST_SIZE_MATCH(xRRGetScreenResourcesReq);
- pWin = (WindowPtr)SecurityLookupWindow(stuff->window, client,
- DixReadAccess);
-
- if (!pWin)
- return BadWindow;
+ rc = dixLookupWindow(&pWin, stuff->window, client, DixReadAccess);
+ if (rc != Success)
+ return rc;
pScreen = pWin->drawable.pScreen;
pScrPriv = rrGetScrPriv(pScreen);
@@ -580,7 +574,7 @@ ProcRRGetScreenInfo (ClientPtr client)
REQUEST(xRRGetScreenInfoReq);
xRRGetScreenInfoReply rep;
WindowPtr pWin;
- int n;
+ int n, rc;
ScreenPtr pScreen;
rrScrPrivPtr pScrPriv;
CARD8 *extra;
@@ -588,11 +582,9 @@ ProcRRGetScreenInfo (ClientPtr client)
RROutputPtr output;
REQUEST_SIZE_MATCH(xRRGetScreenInfoReq);
- pWin = (WindowPtr)SecurityLookupWindow(stuff->window, client,
- DixReadAccess);
-
- if (!pWin)
- return BadWindow;
+ rc = dixLookupWindow(&pWin, stuff->window, client, DixReadAccess);
+ if (rc != Success)
+ return rc;
pScreen = pWin->drawable.pScreen;
pScrPriv = rrGetScrPriv(pScreen);
diff --git a/xfixes/cursor.c b/xfixes/cursor.c
index 21dbcc2..86a512c 100755
--- a/xfixes/cursor.c
+++ b/xfixes/cursor.c
@@ -239,12 +239,12 @@ ProcXFixesSelectCursorInput (ClientPtr c
{
REQUEST (xXFixesSelectCursorInputReq);
WindowPtr pWin;
+ int rc;
REQUEST_SIZE_MATCH (xXFixesSelectCursorInputReq);
- pWin = (WindowPtr)SecurityLookupWindow(stuff->window, client,
- DixReadAccess);
- if (!pWin)
- return(BadWindow);
+ rc = dixLookupWindow(&pWin, stuff->window, client, DixReadAccess);
+ if (rc != Success)
+ return rc;
if (stuff->eventMask & ~CursorAllEvents)
{
client->errorValue = stuff->eventMask;
diff --git a/xfixes/saveset.c b/xfixes/saveset.c
index 9ad2627..ab75619 100755
--- a/xfixes/saveset.c
+++ b/xfixes/saveset.c
@@ -37,10 +37,9 @@ ProcXFixesChangeSaveSet(ClientPtr client
REQUEST(xXFixesChangeSaveSetReq);
REQUEST_SIZE_MATCH(xXFixesChangeSaveSetReq);
- pWin = (WindowPtr)SecurityLookupWindow(stuff->window, client,
- DixReadAccess);
- if (!pWin)
- return(BadWindow);
+ result = dixLookupWindow(&pWin, stuff->window, client, DixReadAccess);
+ if (result != Success)
+ return result;
if (client->clientAsMask == (CLIENT_BITS(pWin->drawable.id)))
return BadMatch;
if ((stuff->mode != SetModeInsert) && (stuff->mode != SetModeDelete))
diff --git a/xfixes/select.c b/xfixes/select.c
index a718715..d1c22c5 100755
--- a/xfixes/select.c
+++ b/xfixes/select.c
@@ -193,12 +193,12 @@ ProcXFixesSelectSelectionInput (ClientPt
{
REQUEST (xXFixesSelectSelectionInputReq);
WindowPtr pWin;
+ int rc;
REQUEST_SIZE_MATCH (xXFixesSelectSelectionInputReq);
- pWin = (WindowPtr)SecurityLookupWindow(stuff->window, client,
- DixReadAccess);
- if (!pWin)
- return(BadWindow);
+ rc = dixLookupWindow(&pWin, stuff->window, client, DixReadAccess);
+ if (rc != Success)
+ return rc;
if (stuff->eventMask & ~SelectionAllEvents)
{
client->errorValue = stuff->eventMask;
diff-tree 04c721854fbf1bd6379c165a53fab2bdc09961c0 (from 670bbb87310503fcc17203cecfa6f4f2f5db51d2)
Author: Eamon Walsh <ewalsh at tycho.nsa.gov>
Date: Fri Dec 15 14:11:40 2006 -0500
Convert callers of LookupWindow() to dixLookupWindow().
diff --git a/Xext/appgroup.c b/Xext/appgroup.c
index 4f30005..134b172 100644
--- a/Xext/appgroup.c
+++ b/Xext/appgroup.c
@@ -355,13 +355,15 @@ int AttrValidate(
AppGroupPtr pAppGrp)
{
WindowPtr pWin;
- int idepth, ivids, found;
+ int idepth, ivids, found, rc;
ScreenPtr pScreen;
DepthPtr pDepth;
ColormapPtr pColormap;
- pWin = LookupWindow (pAppGrp->default_root, client);
- /* XXX check that pWin is not NULL */
+ rc = dixLookupWindow(&pWin, pAppGrp->default_root, client,
+ DixUnknownAccess);
+ if (rc != Success)
+ return rc;
pScreen = pWin->drawable.pScreen;
if (WindowTable[pScreen->myNum]->drawable.id != pAppGrp->default_root)
return BadWindow;
diff --git a/Xext/mbuf.c b/Xext/mbuf.c
index e0361dd..43e2cc1 100644
--- a/Xext/mbuf.c
+++ b/Xext/mbuf.c
@@ -448,16 +448,15 @@ ProcCreateImageBuffers (client)
register int n;
WindowPtr pWin;
XID *ids;
- int len, nbuf;
- int i;
- int err;
+ int len, nbuf, i, err, rc;
REQUEST_AT_LEAST_SIZE (xMbufCreateImageBuffersReq);
len = stuff->length - (sizeof(xMbufCreateImageBuffersReq) >> 2);
if (len == 0)
return BadLength;
- if (!(pWin = LookupWindow (stuff->window, client)))
- return BadWindow;
+ rc = dixLookupWindow(&pWin, stuff->window, client, DixUnknownAccess);
+ if (rc != Success)
+ return rc;
if (pWin->drawable.class == InputOnly)
return BadMatch;
switch (stuff->updateAction)
@@ -584,10 +583,12 @@ ProcDestroyImageBuffers (client)
{
REQUEST (xMbufDestroyImageBuffersReq);
WindowPtr pWin;
+ int rc;
REQUEST_SIZE_MATCH (xMbufDestroyImageBuffersReq);
- if (!(pWin = LookupWindow (stuff->window, client)))
- return BadWindow;
+ rc = dixLookupWindow(&pWin, stuff->window, client, DixUnknownAccess);
+ if (rc != Success)
+ return rc;
DestroyImageBuffers (pWin);
return Success;
}
@@ -599,16 +600,16 @@ ProcSetMBufferAttributes (client)
REQUEST (xMbufSetMBufferAttributesReq);
WindowPtr pWin;
MultibuffersPtr pMultibuffers;
- int len;
+ int len, rc;
Mask vmask;
Mask index2;
CARD32 updateHint;
XID *vlist;
REQUEST_AT_LEAST_SIZE (xMbufSetMBufferAttributesReq);
- pWin = LookupWindow (stuff->window, client);
- if (!pWin)
- return BadWindow;
+ rc = dixLookupWindow(&pWin, stuff->window, client, DixUnknownAccess);
+ if (rc != Success)
+ return rc;
pMultibuffers = (MultibuffersPtr)LookupIDByType (pWin->drawable.id, MultibuffersResType);
if (!pMultibuffers)
return BadMatch;
@@ -655,12 +656,12 @@ ProcGetMBufferAttributes (client)
MultibuffersPtr pMultibuffers;
XID *ids;
xMbufGetMBufferAttributesReply rep;
- int i, n;
+ int i, n, rc;
REQUEST_SIZE_MATCH (xMbufGetMBufferAttributesReq);
- pWin = LookupWindow (stuff->window, client);
- if (!pWin)
- return BadWindow;
+ rc = dixLookupWindow(&pWin, stuff->window, client, DixUnknownAccess);
+ if (rc != Success)
+ return rc;
pMultibuffers = (MultibuffersPtr)LookupIDByType (pWin->drawable.id, MultibuffersResType);
if (!pMultibuffers)
return BadAccess;
diff --git a/Xext/panoramiX.c b/Xext/panoramiX.c
index 6b8b5f2..85f5913 100644
--- a/Xext/panoramiX.c
+++ b/Xext/panoramiX.c
@@ -958,12 +958,13 @@ ProcPanoramiXGetState(ClientPtr client)
REQUEST(xPanoramiXGetStateReq);
WindowPtr pWin;
xPanoramiXGetStateReply rep;
- register int n;
+ register int n, rc;
REQUEST_SIZE_MATCH(xPanoramiXGetStateReq);
- pWin = LookupWindow (stuff->window, client);
- if (!pWin)
- return BadWindow;
+ rc = dixLookupWindow(&pWin, stuff->window, client, DixUnknownAccess);
+ if (rc != Success)
+ return rc;
+
rep.type = X_Reply;
rep.length = 0;
rep.sequenceNumber = client->sequence;
@@ -984,12 +985,13 @@ ProcPanoramiXGetScreenCount(ClientPtr cl
REQUEST(xPanoramiXGetScreenCountReq);
WindowPtr pWin;
xPanoramiXGetScreenCountReply rep;
- register int n;
+ register int n, rc;
REQUEST_SIZE_MATCH(xPanoramiXGetScreenCountReq);
- pWin = LookupWindow (stuff->window, client);
- if (!pWin)
- return BadWindow;
+ rc = dixLookupWindow(&pWin, stuff->window, client, DixUnknownAccess);
+ if (rc != Success)
+ return rc;
+
rep.type = X_Reply;
rep.length = 0;
rep.sequenceNumber = client->sequence;
@@ -1009,12 +1011,13 @@ ProcPanoramiXGetScreenSize(ClientPtr cli
REQUEST(xPanoramiXGetScreenSizeReq);
WindowPtr pWin;
xPanoramiXGetScreenSizeReply rep;
- register int n;
+ register int n, rc;
REQUEST_SIZE_MATCH(xPanoramiXGetScreenSizeReq);
- pWin = LookupWindow (stuff->window, client);
- if (!pWin)
- return BadWindow;
+ rc = dixLookupWindow(&pWin, stuff->window, client, DixUnknownAccess);
+ if (rc != Success)
+ return rc;
+
rep.type = X_Reply;
rep.length = 0;
rep.sequenceNumber = client->sequence;
diff --git a/Xext/shape.c b/Xext/shape.c
index 4a798da..58e3a69 100644
--- a/Xext/shape.c
+++ b/Xext/shape.c
@@ -316,16 +316,16 @@ ProcShapeRectangles (client)
ScreenPtr pScreen;
REQUEST(xShapeRectanglesReq);
xRectangle *prects;
- int nrects, ctype;
+ int nrects, ctype, rc;
RegionPtr srcRgn;
RegionPtr *destRgn;
CreateDftPtr createDefault;
REQUEST_AT_LEAST_SIZE (xShapeRectanglesReq);
UpdateCurrentTime();
- pWin = LookupWindow (stuff->dest, client);
- if (!pWin)
- return BadWindow;
+ rc = dixLookupWindow(&pWin, stuff->dest, client, DixUnknownAccess);
+ if (rc != Success)
+ return rc;
switch (stuff->destKind) {
case ShapeBounding:
createDefault = CreateBoundingShape;
@@ -526,12 +526,13 @@ ProcShapeCombine (client)
CreateDftPtr createDefault;
CreateDftPtr createSrc;
RegionPtr tmp;
+ int rc;
REQUEST_SIZE_MATCH (xShapeCombineReq);
UpdateCurrentTime();
- pDestWin = LookupWindow (stuff->dest, client);
- if (!pDestWin)
- return BadWindow;
+ rc = dixLookupWindow(&pDestWin, stuff->dest, client, DixUnknownAccess);
+ if (rc != Success)
+ return rc;
if (!pDestWin->optional)
MakeWindowOptional (pDestWin);
switch (stuff->destKind) {
@@ -550,9 +551,9 @@ ProcShapeCombine (client)
}
pScreen = pDestWin->drawable.pScreen;
- pSrcWin = LookupWindow (stuff->src, client);
- if (!pSrcWin)
- return BadWindow;
+ rc = dixLookupWindow(&pSrcWin, stuff->src, client, DixUnknownAccess);
+ if (rc != Success)
+ return rc;
switch (stuff->srcKind) {
case ShapeBounding:
srcRgn = wBoundingShape (pSrcWin);
@@ -645,12 +646,13 @@ ProcShapeOffset (client)
ScreenPtr pScreen;
REQUEST(xShapeOffsetReq);
RegionPtr srcRgn;
+ int rc;
REQUEST_SIZE_MATCH (xShapeOffsetReq);
UpdateCurrentTime();
- pWin = LookupWindow (stuff->dest, client);
- if (!pWin)
- return BadWindow;
+ rc = dixLookupWindow(&pWin, stuff->dest, client, DixUnknownAccess);
+ if (rc != Success)
+ return rc;
switch (stuff->destKind) {
case ShapeBounding:
srcRgn = wBoundingShape (pWin);
@@ -709,13 +711,13 @@ ProcShapeQueryExtents (client)
WindowPtr pWin;
xShapeQueryExtentsReply rep;
BoxRec extents, *pExtents;
- register int n;
+ register int n, rc;
RegionPtr region;
REQUEST_SIZE_MATCH (xShapeQueryExtentsReq);
- pWin = LookupWindow (stuff->window, client);
- if (!pWin)
- return BadWindow;
+ rc = dixLookupWindow(&pWin, stuff->window, client, DixUnknownAccess);
+ if (rc != Success)
+ return rc;
rep.type = X_Reply;
rep.length = 0;
rep.sequenceNumber = client->sequence;
@@ -990,14 +992,14 @@ ProcShapeInputSelected (client)
REQUEST(xShapeInputSelectedReq);
WindowPtr pWin;
ShapeEventPtr pShapeEvent, *pHead;
- int enabled;
+ int enabled, rc;
xShapeInputSelectedReply rep;
register int n;
REQUEST_SIZE_MATCH (xShapeInputSelectedReq);
- pWin = LookupWindow (stuff->window, client);
- if (!pWin)
- return BadWindow;
+ rc = dixLookupWindow(&pWin, stuff->window, client, DixUnknownAccess);
+ if (rc != Success)
+ return rc;
pHead = (ShapeEventPtr *) SecurityLookupIDByType(client,
pWin->drawable.id, EventType, DixReadAccess);
enabled = xFalse;
@@ -1032,14 +1034,14 @@ ProcShapeGetRectangles (client)
WindowPtr pWin;
xShapeGetRectanglesReply rep;
xRectangle *rects;
- int nrects, i;
+ int nrects, i, rc;
RegionPtr region;
register int n;
REQUEST_SIZE_MATCH(xShapeGetRectanglesReq);
- pWin = LookupWindow (stuff->window, client);
- if (!pWin)
- return BadWindow;
+ rc = dixLookupWindow(&pWin, stuff->window, client, DixUnknownAccess);
+ if (rc != Success)
+ return rc;
switch (stuff->kind) {
case ShapeBounding:
region = wBoundingShape(pWin);
diff --git a/Xext/xtest.c b/Xext/xtest.c
index 83f8b8c..c9b511e 100644
--- a/Xext/xtest.c
+++ b/Xext/xtest.c
@@ -139,12 +139,12 @@ ProcXTestCompareCursor(client)
xXTestCompareCursorReply rep;
WindowPtr pWin;
CursorPtr pCursor;
- register int n;
+ register int n, rc;
REQUEST_SIZE_MATCH(xXTestCompareCursorReq);
- pWin = (WindowPtr)LookupWindow(stuff->window, client);
- if (!pWin)
- return(BadWindow);
+ rc = dixLookupWindow(&pWin, stuff->window, client, DixUnknownAccess);
+ if (rc != Success)
+ return rc;
if (stuff->cursor == None)
pCursor = NullCursor;
else if (stuff->cursor == XTestCurrentCursor)
@@ -173,12 +173,10 @@ ProcXTestFakeInput(client)
register ClientPtr client;
{
REQUEST(xXTestFakeInputReq);
- int nev;
- int n;
+ int nev, n, type, rc;
xEvent *ev;
DeviceIntPtr dev = NULL;
WindowPtr root;
- int type;
#ifdef XINPUT
Bool extension = FALSE;
deviceValuator *dv = NULL;
@@ -367,9 +365,10 @@ ProcXTestFakeInput(client)
root = GetCurrentRootWindow();
else
{
- root = LookupWindow(ev->u.keyButtonPointer.root, client);
- if (!root)
- return BadWindow;
+ rc = dixLookupWindow(&root, ev->u.keyButtonPointer.root, client,
+ DixUnknownAccess);
+ if (rc != Success)
+ return rc;
if (root->parent)
{
client->errorValue = ev->u.keyButtonPointer.root;
diff --git a/Xext/xvdisp.c b/Xext/xvdisp.c
index 2afb7c6..21d00aa 100644
--- a/Xext/xvdisp.c
+++ b/Xext/xvdisp.c
@@ -373,10 +373,8 @@ ProcXvQueryAdaptors(ClientPtr client)
xvFormat format;
xvAdaptorInfo ainfo;
xvQueryAdaptorsReply rep;
- int totalSize;
- int na;
+ int totalSize, na, nf, rc;
XvAdaptorPtr pa;
- int nf;
XvFormatPtr pf;
WindowPtr pWin;
ScreenPtr pScreen;
@@ -385,11 +383,9 @@ ProcXvQueryAdaptors(ClientPtr client)
REQUEST(xvQueryAdaptorsReq);
REQUEST_SIZE_MATCH(xvQueryAdaptorsReq);
- if(!(pWin = (WindowPtr)LookupWindow(stuff->window, client) ))
- {
- client->errorValue = stuff->window;
- return (BadWindow);
- }
+ rc = dixLookupWindow(&pWin, stuff->window, client, DixUnknownAccess);
+ if (rc != Success)
+ return rc;
pScreen = pWin->drawable.pScreen;
pxvs = (XvScreenPtr)pScreen->devPrivates[XvScreenIndex].ptr;
diff --git a/Xi/chgprop.c b/Xi/chgprop.c
index 52c3883..bab4597 100644
--- a/Xi/chgprop.c
+++ b/Xi/chgprop.c
@@ -106,7 +106,7 @@ SProcXChangeDeviceDontPropagateList(regi
int
ProcXChangeDeviceDontPropagateList(register ClientPtr client)
{
- int i;
+ int i, rc;
WindowPtr pWin;
struct tmask tmp[EMASKSIZE];
OtherInputMasks *others;
@@ -121,11 +121,10 @@ ProcXChangeDeviceDontPropagateList(regis
return Success;
}
- pWin = (WindowPtr) LookupWindow(stuff->window, client);
- if (!pWin) {
- client->errorValue = stuff->window;
+ rc = dixLookupWindow(&pWin, stuff->window, client, DixUnknownAccess);
+ if (rc != Success) {
SendErrorToClient(client, IReqCode, X_ChangeDeviceDontPropagateList, 0,
- BadWindow);
+ rc);
return Success;
}
diff --git a/Xi/exevents.c b/Xi/exevents.c
index 92a5f05..b7645f4 100644
--- a/Xi/exevents.c
+++ b/Xi/exevents.c
@@ -505,6 +505,7 @@ GrabButton(ClientPtr client, DeviceIntPt
WindowPtr pWin, confineTo;
CursorPtr cursor;
GrabPtr grab;
+ int rc;
if ((this_device_mode != GrabModeSync) &&
(this_device_mode != GrabModeAsync)) {
@@ -524,15 +525,15 @@ GrabButton(ClientPtr client, DeviceIntPt
client->errorValue = ownerEvents;
return BadValue;
}
- pWin = LookupWindow(grabWindow, client);
- if (!pWin)
- return BadWindow;
+ rc = dixLookupWindow(&pWin, grabWindow, client, DixUnknownAccess);
+ if (rc != Success)
+ return rc;
if (rconfineTo == None)
confineTo = NullWindow;
else {
- confineTo = LookupWindow(rconfineTo, client);
- if (!confineTo)
- return BadWindow;
+ rc = dixLookupWindow(&confineTo, rconfineTo, client, DixUnknownAccess);
+ if (rc != Success)
+ return rc;
}
if (rcursor == None)
cursor = NullCursor;
@@ -562,6 +563,7 @@ GrabKey(ClientPtr client, DeviceIntPtr d
WindowPtr pWin;
GrabPtr grab;
KeyClassPtr k = dev->key;
+ int rc;
if (k == NULL)
return BadMatch;
@@ -588,9 +590,9 @@ GrabKey(ClientPtr client, DeviceIntPtr d
client->errorValue = ownerEvents;
return BadValue;
}
- pWin = LookupWindow(grabWindow, client);
- if (!pWin)
- return BadWindow;
+ rc = dixLookupWindow(&pWin, grabWindow, client, DixUnknownAccess);
+ if (rc != Success)
+ return rc;
grab = CreateGrab(client->index, dev, pWin,
mask, ownerEvents, this_device_mode, other_devices_mode,
@@ -810,7 +812,7 @@ SendEvent(ClientPtr client, DeviceIntPtr
} else
effectiveFocus = pWin = inputFocus;
} else
- pWin = LookupWindow(dest, client);
+ dixLookupWindow(&pWin, dest, client, DixUnknownAccess);
if (!pWin)
return BadWindow;
if ((propagate != xFalse) && (propagate != xTrue)) {
diff --git a/Xi/getprop.c b/Xi/getprop.c
index 5308410..058c595 100644
--- a/Xi/getprop.c
+++ b/Xi/getprop.c
@@ -100,7 +100,7 @@ int
ProcXGetDeviceDontPropagateList(register ClientPtr client)
{
CARD16 count = 0;
- int i;
+ int i, rc;
XEventClass *buf = NULL, *tbuf;
WindowPtr pWin;
xGetDeviceDontPropagateListReply rep;
@@ -115,11 +115,10 @@ ProcXGetDeviceDontPropagateList(register
rep.length = 0;
rep.count = 0;
- pWin = (WindowPtr) LookupWindow(stuff->window, client);
- if (!pWin) {
- client->errorValue = stuff->window;
+ rc = dixLookupWindow(&pWin, stuff->window, client, DixUnknownAccess);
+ if (rc != Success) {
SendErrorToClient(client, IReqCode, X_GetDeviceDontPropagateList, 0,
- BadWindow);
+ rc);
return Success;
}
diff --git a/Xi/getselev.c b/Xi/getselev.c
index a84c33d..533c66c 100644
--- a/Xi/getselev.c
+++ b/Xi/getselev.c
@@ -98,8 +98,7 @@ SProcXGetSelectedExtensionEvents(registe
int
ProcXGetSelectedExtensionEvents(register ClientPtr client)
{
- int i;
- int total_length = 0;
+ int i, rc, total_length = 0;
xGetSelectedExtensionEventsReply rep;
WindowPtr pWin;
XEventClass *buf = NULL;
@@ -118,9 +117,10 @@ ProcXGetSelectedExtensionEvents(register
rep.this_client_count = 0;
rep.all_clients_count = 0;
- if (!(pWin = LookupWindow(stuff->window, client))) {
+ rc = dixLookupWindow(&pWin, stuff->window, client, DixUnknownAccess);
+ if (rc != Success) {
SendErrorToClient(client, IReqCode, X_GetSelectedExtensionEvents, 0,
- BadWindow);
+ rc);
return Success;
}
diff --git a/Xi/selectev.c b/Xi/selectev.c
index 7d3ef9d..8c893ca 100644
--- a/Xi/selectev.c
+++ b/Xi/selectev.c
@@ -170,11 +170,9 @@ ProcXSelectExtensionEvent(register Clien
return Success;
}
- pWin = (WindowPtr) LookupWindow(stuff->window, client);
- if (!pWin) {
- client->errorValue = stuff->window;
- SendErrorToClient(client, IReqCode, X_SelectExtensionEvent, 0,
- BadWindow);
+ ret = dixLookupWindow(&pWin, stuff->window, client, DixUnknownAccess);
+ if (ret != Success) {
+ SendErrorToClient(client, IReqCode, X_SelectExtensionEvent, 0, ret);
return Success;
}
diff --git a/Xi/ungrdevb.c b/Xi/ungrdevb.c
index 64bb213..8db9307 100644
--- a/Xi/ungrdevb.c
+++ b/Xi/ungrdevb.c
@@ -105,6 +105,7 @@ ProcXUngrabDeviceButton(ClientPtr client
DeviceIntPtr mdev;
WindowPtr pWin;
GrabRec temporaryGrab;
+ int rc;
REQUEST(xUngrabDeviceButtonReq);
REQUEST_SIZE_MATCH(xUngrabDeviceButtonReq);
@@ -134,9 +135,9 @@ ProcXUngrabDeviceButton(ClientPtr client
} else
mdev = (DeviceIntPtr) LookupKeyboardDevice();
- pWin = LookupWindow(stuff->grabWindow, client);
- if (!pWin) {
- SendErrorToClient(client, IReqCode, X_UngrabDeviceButton, 0, BadWindow);
+ rc = dixLookupWindow(&pWin, stuff->grabWindow, client, DixUnknownAccess);
+ if (rc != Success) {
+ SendErrorToClient(client, IReqCode, X_UngrabDeviceButton, 0, rc);
return Success;
}
diff --git a/Xi/ungrdevk.c b/Xi/ungrdevk.c
index 0a6b3b6..ebb83bc 100644
--- a/Xi/ungrdevk.c
+++ b/Xi/ungrdevk.c
@@ -105,6 +105,7 @@ ProcXUngrabDeviceKey(ClientPtr client)
DeviceIntPtr mdev;
WindowPtr pWin;
GrabRec temporaryGrab;
+ int rc;
REQUEST(xUngrabDeviceKeyReq);
REQUEST_SIZE_MATCH(xUngrabDeviceKeyReq);
@@ -133,9 +134,9 @@ ProcXUngrabDeviceKey(ClientPtr client)
} else
mdev = (DeviceIntPtr) LookupKeyboardDevice();
- pWin = LookupWindow(stuff->grabWindow, client);
- if (!pWin) {
- SendErrorToClient(client, IReqCode, X_UngrabDeviceKey, 0, BadWindow);
+ rc = dixLookupWindow(&pWin, stuff->grabWindow, client, DixUnknownAccess);
+ if (rc != Success) {
+ SendErrorToClient(client, IReqCode, X_UngrabDeviceKey, 0, rc);
return Success;
}
if (((stuff->key > dev->key->curKeySyms.maxKeyCode) ||
diff --git a/composite/compwindow.c b/composite/compwindow.c
index 2c86cdd..fed642e 100644
--- a/composite/compwindow.c
+++ b/composite/compwindow.c
@@ -93,10 +93,10 @@ typedef struct _compPixmapVisit {
static Bool
compRepaintBorder (ClientPtr pClient, pointer closure)
{
- WindowPtr pWindow = LookupWindow ((XID) closure, pClient);
+ WindowPtr pWindow;
+ int rc = dixLookupWindow(&pWindow, (XID)closure, pClient,DixUnknownAccess);
- if (pWindow)
- {
+ if (rc == Success) {
RegionRec exposed;
REGION_NULL(pScreen, &exposed);
diff --git a/hw/darwin/quartz/pseudoramiX.c b/hw/darwin/quartz/pseudoramiX.c
index ab57827..a003daf 100644
--- a/hw/darwin/quartz/pseudoramiX.c
+++ b/hw/darwin/quartz/pseudoramiX.c
@@ -170,12 +170,13 @@ static int ProcPseudoramiXGetState(Clien
REQUEST(xPanoramiXGetStateReq);
WindowPtr pWin;
xPanoramiXGetStateReply rep;
- register int n;
+ register int n, rc;
REQUEST_SIZE_MATCH(xPanoramiXGetStateReq);
- pWin = LookupWindow (stuff->window, client);
- if (!pWin)
- return BadWindow;
+ rc = dixLookupWindow(&pWin, stuff->window, client, DixUnknownAccess);
+ if (rc != Success)
+ return rc;
+
rep.type = X_Reply;
rep.length = 0;
rep.sequenceNumber = client->sequence;
@@ -196,12 +197,13 @@ static int ProcPseudoramiXGetScreenCount
REQUEST(xPanoramiXGetScreenCountReq);
WindowPtr pWin;
xPanoramiXGetScreenCountReply rep;
- register int n;
+ register int n, rc;
REQUEST_SIZE_MATCH(xPanoramiXGetScreenCountReq);
- pWin = LookupWindow (stuff->window, client);
- if (!pWin)
- return BadWindow;
+ rc = dixLookupWindow(&pWin, stuff->window, client, DixUnknownAccess);
+ if (rc != Success)
+ return rc;
+
rep.type = X_Reply;
rep.length = 0;
rep.sequenceNumber = client->sequence;
@@ -222,12 +224,13 @@ static int ProcPseudoramiXGetScreenSize(
REQUEST(xPanoramiXGetScreenSizeReq);
WindowPtr pWin;
xPanoramiXGetScreenSizeReply rep;
- register int n;
+ register int n, rc;
REQUEST_SIZE_MATCH(xPanoramiXGetScreenSizeReq);
- pWin = LookupWindow (stuff->window, client);
- if (!pWin)
- return BadWindow;
+ rc = dixLookupWindow(&pWin, stuff->window, client, DixUnknownAccess);
+ if (rc != Success)
+ return rc;
+
rep.type = X_Reply;
rep.length = 0;
rep.sequenceNumber = client->sequence;
diff --git a/randr/rrxinerama.c b/randr/rrxinerama.c
index 771ed09..8b95145 100644
--- a/randr/rrxinerama.c
+++ b/randr/rrxinerama.c
@@ -116,14 +116,15 @@ ProcRRXineramaGetState(ClientPtr client)
REQUEST(xPanoramiXGetStateReq);
WindowPtr pWin;
xPanoramiXGetStateReply rep;
- register int n;
+ register int n, rc;
ScreenPtr pScreen;
rrScrPrivPtr pScrPriv;
Bool active = FALSE;
REQUEST_SIZE_MATCH(xPanoramiXGetStateReq);
- pWin = LookupWindow(stuff->window, client);
- if(!pWin) return BadWindow;
+ rc = dixLookupWindow(&pWin, stuff->window, client, DixUnknownAccess);
+ if(rc != Success)
+ return rc;
pScreen = pWin->drawable.pScreen;
pScrPriv = rrGetScrPriv(pScreen);
@@ -180,11 +181,12 @@ ProcRRXineramaGetScreenCount(ClientPtr c
REQUEST(xPanoramiXGetScreenCountReq);
WindowPtr pWin;
xPanoramiXGetScreenCountReply rep;
- register int n;
+ register int n, rc;
REQUEST_SIZE_MATCH(xPanoramiXGetScreenCountReq);
- pWin = LookupWindow(stuff->window, client);
- if(!pWin) return BadWindow;
+ rc = dixLookupWindow(&pWin, stuff->window, client, DixUnknownAccess);
+ if (rc != Success)
+ return rc;
rep.type = X_Reply;
rep.length = 0;
@@ -206,11 +208,12 @@ ProcRRXineramaGetScreenSize(ClientPtr cl
WindowPtr pWin, pRoot;
ScreenPtr pScreen;
xPanoramiXGetScreenSizeReply rep;
- register int n;
+ register int n, rc;
REQUEST_SIZE_MATCH(xPanoramiXGetScreenSizeReq);
- pWin = LookupWindow (stuff->window, client);
- if(!pWin) return BadWindow;
+ rc = dixLookupWindow(&pWin, stuff->window, client, DixUnknownAccess);
+ if (rc != Success)
+ return rc;
pScreen = pWin->drawable.pScreen;
pRoot = WindowTable[pScreen->myNum];
diff-tree 670bbb87310503fcc17203cecfa6f4f2f5db51d2 (from 6c6901434ab469dd03b79fc98cd4a2b64d339305)
Author: Keith Packard <keithp at neko.keithp.com>
Date: Wed Dec 13 01:21:32 2006 -0800
RandR 1.2 rotation code must adjust width/height.
Mode lines reflect the monitor mode, not the projected size into the frame
buffer. Flip width/height around so that the dimensions are oriented
correctly.
(cherry picked from 612a8e61803da8db0e305cbb093696b8e4284572 commit)
diff --git a/randr/rrcrtc.c b/randr/rrcrtc.c
index 05863a1..0767420 100644
--- a/randr/rrcrtc.c
+++ b/randr/rrcrtc.c
@@ -698,7 +698,15 @@ ProcRRSetCrtcConfig (ClientPtr client)
*/
if (pScrPriv->rrScreenSetSize)
{
- if (stuff->x + mode->mode.width > pScreen->width)
+ int source_width = mode->mode.width;
+ int source_height = mode->mode.height;
+
+ if (rotation == RR_Rotate_90 || rotation == RR_Rotate_270)
+ {
+ source_width = mode->mode.height;
+ source_height = mode->mode.width;
+ }
+ if (stuff->x + source_width > pScreen->width)
{
client->errorValue = stuff->x;
if (outputs)
@@ -706,7 +714,7 @@ ProcRRSetCrtcConfig (ClientPtr client)
return BadValue;
}
- if (stuff->y + mode->mode.height > pScreen->height)
+ if (stuff->y + source_height > pScreen->height)
{
client->errorValue = stuff->y;
if (outputs)
diff --git a/randr/rrscreen.c b/randr/rrscreen.c
index 37b6a57..f1d8fc5 100644
--- a/randr/rrscreen.c
+++ b/randr/rrscreen.c
@@ -268,7 +268,6 @@ ProcRRSetScreenSize (ClientPtr client)
WindowPtr pWin;
ScreenPtr pScreen;
rrScrPrivPtr pScrPriv;
- RRCrtcPtr crtc;
int i;
REQUEST_SIZE_MATCH(xRRSetScreenSizeReq);
@@ -291,12 +290,26 @@ ProcRRSetScreenSize (ClientPtr client)
client->errorValue = stuff->height;
return BadValue;
}
- for (i = 0; i < pScrPriv->numCrtcs; i++) {
- crtc = pScrPriv->crtcs[i];
- if (crtc->mode &&
- (crtc->x + crtc->mode->mode.width > stuff->width ||
- crtc->y + crtc->mode->mode.height > stuff->height))
+ for (i = 0; i < pScrPriv->numCrtcs; i++)
+ {
+ RRCrtcPtr crtc = pScrPriv->crtcs[i];
+ RRModePtr mode = crtc->mode;
+ if (mode)
+ {
+ int source_width = mode->mode.width;
+ int source_height = mode->mode.height;
+ Rotation rotation = crtc->rotation;
+
+ if (rotation == RR_Rotate_90 || rotation == RR_Rotate_270)
+ {
+ source_width = mode->mode.height;
+ source_height = mode->mode.width;
+ }
+
+ if (crtc->x + source_width > stuff->width ||
+ crtc->y + source_height > stuff->height)
return BadMatch;
+ }
}
if (stuff->widthInMillimeters == 0 || stuff->heightInMillimeters == 0)
{
diff-tree 6c6901434ab469dd03b79fc98cd4a2b64d339305 (from 628c7daeb12713d28e85e6b49fa037a7748dff83)
Author: Keith Packard <keithp at mandolin.keithp.com>
Date: Wed Dec 13 00:58:54 2006 -0800
RandR 1.0 refresh rates unscrambled. SetScreenConfig uses RRCrtcSet right.
RandR 1.0 refresh rates were scrambled when working with a 1.2 driver that
returned sizes in a mixed order. SetScreenConfig was treating RRCrtcSet as
returning an RandR status instead of a Bool.
(cherry picked from 6dc711833d7387372012fdff1ce1df3aefa2d234 commit)
diff --git a/randr/rrscreen.c b/randr/rrscreen.c
index 3b9263b..37b6a57 100644
--- a/randr/rrscreen.c
+++ b/randr/rrscreen.c
@@ -481,62 +481,81 @@ RR10GetData (ScreenPtr pScreen, RROutput
RR10DataPtr data;
RRScreenSizePtr size;
int nmode = output->numModes;
- int i, j, k;
+ int o, os, l, r;
RRScreenRatePtr refresh;
CARD16 vRefresh;
RRModePtr mode;
+ Bool *used;
/* Make sure there is plenty of space for any combination */
data = malloc (sizeof (RR10DataRec) +
sizeof (RRScreenSize) * nmode +
- sizeof (RRScreenRate) * nmode);
+ sizeof (RRScreenRate) * nmode +
+ sizeof (Bool) * nmode);
if (!data)
return NULL;
size = (RRScreenSizePtr) (data + 1);
refresh = (RRScreenRatePtr) (size + nmode);
+ used = (Bool *) (refresh + nmode);
+ memset (used, '\0', sizeof (Bool) * nmode);
data->sizes = size;
data->nsize = 0;
data->nrefresh = 0;
data->size = 0;
data->refresh = 0;
- for (i = 0; i < output->numModes; i++)
+
+ /*
+ * find modes not yet listed
+ */
+ for (o = 0; o < output->numModes; o++)
{
- mode = output->modes[i];
- for (j = 0; j < data->nsize; j++)
- if (mode->mode.width == size[j].width &&
- mode->mode.height == size[j].height)
- break;
- if (j == data->nsize)
- {
- size[j].id = j;
- size[j].width = mode->mode.width;
- size[j].height = mode->mode.height;
- if (output->mmWidth && output->mmHeight) {
- size[j].mmWidth = output->mmWidth;
- size[j].mmHeight = output->mmHeight;
- } else {
- size[j].mmWidth = pScreen->mmWidth;
- size[j].mmHeight = pScreen->mmHeight;
- }
- size[j].nRates = 0;
- size[j].pRates = &refresh[data->nrefresh];
- data->nsize++;
- }
- vRefresh = RRVerticalRefresh (&mode->mode);
- for (k = 0; k < size[j].nRates; k++)
- if (vRefresh == size[j].pRates[k].rate)
- break;
- if (k == size[j].nRates)
- {
- size[j].pRates[k].rate = vRefresh;
- size[j].pRates[k].mode = mode;
- size[j].nRates++;
- data->nrefresh++;
+ if (used[o]) continue;
+
+ mode = output->modes[o];
+
+ l = data->nsize;
+ size[l].id = data->nsize;
+ size[l].width = mode->mode.width;
+ size[l].height = mode->mode.height;
+ if (output->mmWidth && output->mmHeight) {
+ size[l].mmWidth = output->mmWidth;
+ size[l].mmHeight = output->mmHeight;
+ } else {
+ size[l].mmWidth = pScreen->mmWidth;
+ size[l].mmHeight = pScreen->mmHeight;
}
- if (mode == output->crtc->mode)
+ size[l].nRates = 0;
+ size[l].pRates = &refresh[data->nrefresh];
+ data->nsize++;
+
+ /*
+ * Find all modes with matching size
+ */
+ for (os = o; os < output->numModes; os++)
{
- data->size = j;
- data->refresh = vRefresh;
+ mode = output->modes[os];
+ if (mode->mode.width == size[l].width &&
+ mode->mode.height == size[l].height)
+ {
+ vRefresh = RRVerticalRefresh (&mode->mode);
+ used[os] = TRUE;
+
+ for (r = 0; r < size[l].nRates; r++)
+ if (vRefresh == size[l].pRates[r].rate)
+ break;
+ if (r == size[l].nRates)
+ {
+ size[l].pRates[r].rate = vRefresh;
+ size[l].pRates[r].mode = mode;
+ size[l].nRates++;
+ data->nrefresh++;
+ }
+ if (mode == output->crtc->mode)
+ {
+ data->size = l;
+ data->refresh = vRefresh;
+ }
+ }
}
}
return data;
@@ -865,22 +884,28 @@ ProcRRSetScreenConfig (ClientPtr client)
for (c = 0; c < pScrPriv->numCrtcs; c++)
{
- rep.status = RRCrtcSet (pScrPriv->crtcs[c], NULL, 0, 0, RR_Rotate_0,
- 0, NULL);
- if (rep.status != Success)
+ if (!RRCrtcSet (pScrPriv->crtcs[c], NULL, 0, 0, RR_Rotate_0,
+ 0, NULL))
+ {
+ rep.status = RRSetConfigFailed;
+ /* XXX recover from failure */
goto sendReply;
+ }
}
if (!RRScreenSizeSet (pScreen, mode->mode.width, mode->mode.height,
pScreen->mmWidth, pScreen->mmHeight))
{
rep.status = RRSetConfigFailed;
+ /* XXX recover from failure */
goto sendReply;
}
}
-
- rep.status = RRCrtcSet (output->crtc, mode, 0, 0, stuff->rotation,
- 1, &output);
-
+
+ if (!RRCrtcSet (output->crtc, mode, 0, 0, stuff->rotation, 1, &output))
+ rep.status = RRSetConfigFailed;
+ else
+ rep.status = RRSetConfigSuccess;
+
/*
* XXX Configure other crtcs to mirror as much as possible
*/
diff-tree 628c7daeb12713d28e85e6b49fa037a7748dff83 (from d742025f435f3eb7458cf8284d59300bc9a850aa)
Author: Keith Packard <keithp at guitar.keithp.com>
Date: Tue Dec 12 22:59:03 2006 -0800
RandR: config time updates when hardware config changes.
The config time in the RandR protocol reflects when the hardware state has
changed. It was getting changed anytime the driver changed the usage
of the hardware as well.
(cherry picked from 98d18a6578130adb411ca4bcc776fcb7e07f189f commit)
diff --git a/randr/randr.c b/randr/randr.c
index 147df8c..1470035 100644
--- a/randr/randr.c
+++ b/randr/randr.c
@@ -415,7 +415,11 @@ RRTellChanged (ScreenPtr pScreen)
if (pScrPriv->changed)
{
UpdateCurrentTime ();
- pScrPriv->lastConfigTime = currentTime;
+ if (pScrPriv->configChanged)
+ {
+ pScrPriv->lastConfigTime = currentTime;
+ pScrPriv->configChanged = FALSE;
+ }
pScrPriv->changed = FALSE;
WalkTree (pScreen, TellChanged, (pointer) pScreen);
for (i = 0; i < pScrPriv->numOutputs; i++)
diff --git a/randr/randrstr.h b/randr/randrstr.h
index 27ede92..88f7588 100644
--- a/randr/randrstr.h
+++ b/randr/randrstr.h
@@ -216,11 +216,14 @@ typedef struct _rrScrPriv {
TimeStamp lastSetTime; /* last changed by client */
TimeStamp lastConfigTime; /* possible configs changed */
RRCloseScreenProcPtr CloseScreen;
+
Bool changed; /* some config changed */
+ Bool configChanged; /* configuration changed */
+ Bool layoutChanged; /* screen layout changed */
+
CARD16 minWidth, minHeight;
CARD16 maxWidth, maxHeight;
CARD16 width, height; /* last known screen size */
- Bool layoutChanged; /* screen layout changed */
int numOutputs;
RROutputPtr *outputs;
@@ -619,10 +622,13 @@ ProcRRDeleteOutputMode (ClientPtr client
/* rroutput.c */
/*
- * Notify the output of some change
+ * Notify the output of some change. configChanged indicates whether
+ * any external configuration (mode list, clones, connected status)
+ * has changed, or whether the change was strictly internal
+ * (which crtc is in use)
*/
void
-RROutputChanged (RROutputPtr output);
+RROutputChanged (RROutputPtr output, Bool configChanged);
/*
* Create an output
diff --git a/randr/rrcrtc.c b/randr/rrcrtc.c
index d4c96f6..05863a1 100644
--- a/randr/rrcrtc.c
+++ b/randr/rrcrtc.c
@@ -136,7 +136,7 @@ RRCrtcNotify (RRCrtcPtr crtc,
break;
if (j == crtc->numOutputs)
{
- RROutputChanged (outputs[i]);
+ RROutputChanged (outputs[i], FALSE);
RRCrtcChanged (crtc, FALSE);
}
}
@@ -151,7 +151,7 @@ RRCrtcNotify (RRCrtcPtr crtc,
break;
if (i == numOutputs)
{
- RROutputChanged (crtc->outputs[j]);
+ RROutputChanged (crtc->outputs[j], FALSE);
RRCrtcChanged (crtc, FALSE);
}
}
diff --git a/randr/rrinfo.c b/randr/rrinfo.c
index 244b089..85426f6 100644
--- a/randr/rrinfo.c
+++ b/randr/rrinfo.c
@@ -69,6 +69,7 @@ RROldModeAdd (RROutputPtr output, RRScre
output->modes = modes;
output->changed = TRUE;
pScrPriv->changed = TRUE;
+ pScrPriv->configChanged = TRUE;
return mode;
}
@@ -205,6 +206,7 @@ RRGetInfo (ScreenPtr pScreen)
rotations = 0;
pScrPriv->changed = FALSE;
+ pScrPriv->configChanged = FALSE;
if (!(*pScrPriv->rrGetInfo) (pScreen, &rotations))
return FALSE;
diff --git a/randr/rroutput.c b/randr/rroutput.c
index 33c4ba5..a664330 100644
--- a/randr/rroutput.c
+++ b/randr/rroutput.c
@@ -28,7 +28,7 @@ RESTYPE RROutputType;
* Notify the output of some change
*/
void
-RROutputChanged (RROutputPtr output)
+RROutputChanged (RROutputPtr output, Bool configChanged)
{
ScreenPtr pScreen = output->pScreen;
@@ -37,6 +37,8 @@ RROutputChanged (RROutputPtr output)
{
rrScrPriv (pScreen);
pScrPriv->changed = TRUE;
+ if (configChanged)
+ pScrPriv->configChanged = TRUE;
}
}
@@ -106,7 +108,7 @@ RROutputAttachScreen (RROutputPtr output
output->pScreen = pScreen;
pScrPriv->outputs = outputs;
pScrPriv->outputs[pScrPriv->numOutputs++] = output;
- RROutputChanged (output);
+ RROutputChanged (output, FALSE);
return TRUE;
}
@@ -142,7 +144,7 @@ RROutputSetClones (RROutputPtr output,
memcpy (newClones, clones, numClones * sizeof (RROutputPtr));
output->clones = newClones;
output->numClones = numClones;
- RROutputChanged (output);
+ RROutputChanged (output, TRUE);
return TRUE;
}
@@ -186,7 +188,7 @@ RROutputSetModes (RROutputPtr output,
output->modes = newModes;
output->numModes = numModes;
output->numPreferred = numPreferred;
- RROutputChanged (output);
+ RROutputChanged (output, TRUE);
return TRUE;
}
@@ -219,7 +221,7 @@ RROutputSetCrtcs (RROutputPtr output,
memcpy (newCrtcs, crtcs, numCrtcs * sizeof (RRCrtcPtr));
output->crtcs = newCrtcs;
output->numCrtcs = numCrtcs;
- RROutputChanged (output);
+ RROutputChanged (output, TRUE);
return TRUE;
}
@@ -229,7 +231,7 @@ RROutputSetCrtc (RROutputPtr output, RRC
if (output->crtc == crtc)
return;
output->crtc = crtc;
- RROutputChanged (output);
+ RROutputChanged (output, FALSE);
}
Bool
@@ -239,7 +241,7 @@ RROutputSetConnection (RROutputPtr outp
if (output->connection == connection)
return TRUE;
output->connection = connection;
- RROutputChanged (output);
+ RROutputChanged (output, TRUE);
return TRUE;
}
@@ -251,7 +253,7 @@ RROutputSetSubpixelOrder (RROutputPtr ou
return TRUE;
output->subpixelOrder = subpixelOrder;
- RROutputChanged (output);
+ RROutputChanged (output, FALSE);
return TRUE;
}
@@ -264,7 +266,7 @@ RROutputSetPhysicalSize (RROutputPtr out
return TRUE;
output->mmWidth = mmWidth;
output->mmHeight = mmHeight;
- RROutputChanged (output);
+ RROutputChanged (output, FALSE);
return TRUE;
}
diff-tree d742025f435f3eb7458cf8284d59300bc9a850aa (from 9e32bf98bc9ab17a137664d01f59a8f426f7ff3b)
Author: Keith Packard <keithp at guitar.keithp.com>
Date: Tue Dec 12 20:16:49 2006 -0800
RandR mode list needs both output and crtc modes.
When an output no longer reports the current mode, it must still be included
in the list advertised by the X server. Walk the crtcs to ensure it is
included.
(cherry picked from 78689d0d6630afcbcd3ce5394d12c2564a489f45 commit)
diff --git a/randr/rrmode.c b/randr/rrmode.c
index a0696e1..261e1b7 100644
--- a/randr/rrmode.c
+++ b/randr/rrmode.c
@@ -108,12 +108,15 @@ RRModePtr *
RRModesForScreen (ScreenPtr pScreen, int *num_ret)
{
rrScrPriv(pScreen);
- int o;
+ int o, c;
RRModePtr *screen_modes;
int num_screen_modes = 0;
screen_modes = xalloc ((num_modes ? num_modes : 1) * sizeof (RRModePtr));
+ /*
+ * Add modes from all outputs
+ */
for (o = 0; o < pScrPriv->numOutputs; o++)
{
RROutputPtr output = pScrPriv->outputs[o];
@@ -129,6 +132,24 @@ RRModesForScreen (ScreenPtr pScreen, int
screen_modes[num_screen_modes++] = mode;
}
}
+ /*
+ * Add modes from all crtcs. The goal is to
+ * make sure all available and active modes
+ * are visible to the client
+ */
+ for (c = 0; c < pScrPriv->numCrtcs; c++)
+ {
+ RRCrtcPtr crtc = pScrPriv->crtcs[c];
+ RRModePtr mode = crtc->mode;
+ int n;
+
+ if (!mode) continue;
+ for (n = 0; n < num_screen_modes; n++)
+ if (screen_modes[n] == mode)
+ break;
+ if (n == num_screen_modes)
+ screen_modes[num_screen_modes++] = mode;
+ }
*num_ret = num_screen_modes;
return screen_modes;
}
diff-tree 9e32bf98bc9ab17a137664d01f59a8f426f7ff3b (from 00f0705b3bb444ac934fc902cd23130f1777eab2)
Author: Eamon Walsh <ewalsh at tycho.nsa.gov>
Date: Thu Dec 14 19:31:58 2006 -0500
Remove now-unused macro definitions from dix.h.
diff --git a/include/dix.h b/include/dix.h
index 7dd321f..baff43f 100644
--- a/include/dix.h
+++ b/include/dix.h
@@ -81,107 +81,6 @@ SOFTWARE.
return(BadIDChoice);\
}
-/* XXX if you are using this macro, you are probably not generating Match
- * errors where appropriate */
-#define LOOKUP_DRAWABLE(did, client)\
- ((client->lastDrawableID == did) ? \
- client->lastDrawable : (DrawablePtr)LookupDrawable(did, client))
-
-#ifdef XACE
-
-#define SECURITY_VERIFY_DRAWABLE(pDraw, did, client, mode)\
- {\
- pDraw = (DrawablePtr) SecurityLookupIDByClass(client, did, \
- RC_DRAWABLE, mode);\
- if (!pDraw) \
- {\
- client->errorValue = did; \
- return BadDrawable;\
- }\
- if (pDraw->type == UNDRAWABLE_WINDOW)\
- return BadMatch;\
- }
-
-#define SECURITY_VERIFY_GEOMETRABLE(pDraw, did, client, mode)\
- {\
- pDraw = (DrawablePtr) SecurityLookupIDByClass(client, did, \
- RC_DRAWABLE, mode);\
- if (!pDraw) \
- {\
- client->errorValue = did; \
- return BadDrawable;\
- }\
- }
-
-#define SECURITY_VERIFY_GC(pGC, rid, client, mode)\
- pGC = (GC *) SecurityLookupIDByType(client, rid, RT_GC, mode);\
- if (!pGC)\
- {\
- client->errorValue = rid;\
- return (BadGC);\
- }
-
-#define VERIFY_DRAWABLE(pDraw, did, client)\
- SECURITY_VERIFY_DRAWABLE(pDraw, did, client, DixUnknownAccess)
-
-#define VERIFY_GEOMETRABLE(pDraw, did, client)\
- SECURITY_VERIFY_GEOMETRABLE(pDraw, did, client, DixUnknownAccess)
-
-#define VERIFY_GC(pGC, rid, client)\
- SECURITY_VERIFY_GC(pGC, rid, client, DixUnknownAccess)
-
-#else /* not XACE */
-
-#define VERIFY_DRAWABLE(pDraw, did, client)\
- if (client->lastDrawableID == did)\
- pDraw = client->lastDrawable;\
- else \
- {\
- pDraw = (DrawablePtr) LookupIDByClass(did, RC_DRAWABLE);\
- if (!pDraw) \
- {\
- client->errorValue = did; \
- return BadDrawable;\
- }\
- if (pDraw->type == UNDRAWABLE_WINDOW)\
- return BadMatch;\
- }
-
-#define VERIFY_GEOMETRABLE(pDraw, did, client)\
- if (client->lastDrawableID == did)\
- pDraw = client->lastDrawable;\
- else \
- {\
- pDraw = (DrawablePtr) LookupIDByClass(did, RC_DRAWABLE);\
- if (!pDraw) \
- {\
- client->errorValue = did; \
- return BadDrawable;\
- }\
- }
-
-#define VERIFY_GC(pGC, rid, client)\
- if (client->lastGCID == rid)\
- pGC = client->lastGC;\
- else\
- pGC = (GC *)LookupIDByType(rid, RT_GC);\
- if (!pGC)\
- {\
- client->errorValue = rid;\
- return (BadGC);\
- }
-
-#define SECURITY_VERIFY_DRAWABLE(pDraw, did, client, mode)\
- VERIFY_DRAWABLE(pDraw, did, client)
-
-#define SECURITY_VERIFY_GEOMETRABLE(pDraw, did, client, mode)\
- VERIFY_GEOMETRABLE(pDraw, did, client)
-
-#define SECURITY_VERIFY_GC(pGC, rid, client, mode)\
- VERIFY_GC(pGC, rid, client)
-
-#endif /* XACE */
-
/*
* We think that most hardware implementations of DBE will want
* LookupID*(dbe_back_buffer_id) to return the window structure that the
diff-tree 00f0705b3bb444ac934fc902cd23130f1777eab2 (from 5e334f06a1ef89891f9df2a371e4662340bec26b)
Author: Eamon Walsh <ewalsh at tycho.nsa.gov>
Date: Thu Dec 14 19:15:21 2006 -0500
Remove instances of macros SECURITY_VERIFY_GEOMETRABLE and SECURITY_VERIFY_GC.
diff --git a/Xext/shm.c b/Xext/shm.c
index 4e73319..7cfaa68 100644
--- a/Xext/shm.c
+++ b/Xext/shm.c
@@ -816,8 +816,8 @@ static int
ProcShmPutImage(client)
register ClientPtr client;
{
- register GCPtr pGC;
- register DrawablePtr pDraw;
+ GCPtr pGC;
+ DrawablePtr pDraw;
long length;
ShmDescPtr shmdesc;
REQUEST(xShmPutImageReq);
diff --git a/Xext/xvdisp.c b/Xext/xvdisp.c
index d666044..2afb7c6 100644
--- a/Xext/xvdisp.c
+++ b/Xext/xvdisp.c
@@ -531,9 +531,9 @@ ProcXvQueryEncodings(ClientPtr client)
static int
ProcXvPutVideo(ClientPtr client)
{
- register DrawablePtr pDraw;
+ DrawablePtr pDraw;
XvPortPtr pPort;
- register GCPtr pGC;
+ GCPtr pGC;
int status;
REQUEST(xvPutVideoReq);
@@ -577,9 +577,9 @@ ProcXvPutVideo(ClientPtr client)
static int
ProcXvPutStill(ClientPtr client)
{
- register DrawablePtr pDraw;
+ DrawablePtr pDraw;
XvPortPtr pPort;
- register GCPtr pGC;
+ GCPtr pGC;
int status;
REQUEST(xvPutStillReq);
@@ -624,9 +624,9 @@ ProcXvPutStill(ClientPtr client)
static int
ProcXvGetVideo(ClientPtr client)
{
- register DrawablePtr pDraw;
+ DrawablePtr pDraw;
XvPortPtr pPort;
- register GCPtr pGC;
+ GCPtr pGC;
int status;
REQUEST(xvGetVideoReq);
@@ -671,9 +671,9 @@ ProcXvGetVideo(ClientPtr client)
static int
ProcXvGetStill(ClientPtr client)
{
- register DrawablePtr pDraw;
+ DrawablePtr pDraw;
XvPortPtr pPort;
- register GCPtr pGC;
+ GCPtr pGC;
int status;
REQUEST(xvGetStillReq);
diff --git a/dix/dispatch.c b/dix/dispatch.c
index a5a1d03..0421886 100644
--- a/dix/dispatch.c
+++ b/dix/dispatch.c
@@ -843,11 +843,15 @@ ProcCirculateWindow(register ClientPtr c
int
GetGeometry(register ClientPtr client, xGetGeometryReply *rep)
{
- register DrawablePtr pDraw;
+ DrawablePtr pDraw;
+ int rc;
REQUEST(xResourceReq);
-
REQUEST_SIZE_MATCH(xResourceReq);
- SECURITY_VERIFY_GEOMETRABLE (pDraw, stuff->id, client, DixReadAccess);
+
+ rc = dixLookupDrawable(&pDraw, stuff->id, client, M_ANY, DixReadAccess);
+ if (rc != Success)
+ return rc;
+
rep->type = X_Reply;
rep->length = 0;
rep->sequenceNumber = client->sequence;
@@ -1516,16 +1520,20 @@ int
ProcCreatePixmap(register ClientPtr client)
{
PixmapPtr pMap;
- register DrawablePtr pDraw;
+ DrawablePtr pDraw;
REQUEST(xCreatePixmapReq);
DepthPtr pDepth;
- register int i;
+ register int i, rc;
REQUEST_SIZE_MATCH(xCreatePixmapReq);
client->errorValue = stuff->pid;
LEGAL_NEW_RESOURCE(stuff->pid, client);
- SECURITY_VERIFY_GEOMETRABLE (pDraw, stuff->drawable, client,
- DixReadAccess);
+
+ rc = dixLookupDrawable(&pDraw, stuff->drawable, client, M_ANY,
+ DixReadAccess);
+ if (rc != Success)
+ return rc;
+
if (!stuff->width || !stuff->height)
{
client->errorValue = 0;
@@ -1625,12 +1633,15 @@ int
ProcChangeGC(register ClientPtr client)
{
GC *pGC;
- REQUEST(xChangeGCReq);
int result;
unsigned len;
-
+ REQUEST(xChangeGCReq);
REQUEST_AT_LEAST_SIZE(xChangeGCReq);
- SECURITY_VERIFY_GC(pGC, stuff->gc, client, DixWriteAccess);
+
+ result = dixLookupGC(&pGC, stuff->gc, client, DixWriteAccess);
+ if (result != Success)
+ return result;
+
len = client->req_len - (sizeof(xChangeGCReq) >> 2);
if (len != Ones(stuff->mask))
return BadLength;
@@ -1648,14 +1659,18 @@ ProcChangeGC(register ClientPtr client)
int
ProcCopyGC(register ClientPtr client)
{
- register GC *dstGC;
- register GC *pGC;
+ GC *dstGC;
+ GC *pGC;
int result;
REQUEST(xCopyGCReq);
-
REQUEST_SIZE_MATCH(xCopyGCReq);
- SECURITY_VERIFY_GC( pGC, stuff->srcGC, client, DixReadAccess);
- SECURITY_VERIFY_GC( dstGC, stuff->dstGC, client, DixWriteAccess);
+
+ result = dixLookupGC(&pGC, stuff->srcGC, client, DixReadAccess);
+ if (result != Success)
+ return result;
+ result = dixLookupGC(&dstGC, stuff->dstGC, client, DixWriteAccess);
+ if (result != Success)
+ return result;
if ((dstGC->pScreen != pGC->pScreen) || (dstGC->depth != pGC->depth))
return (BadMatch);
result = CopyGC(pGC, dstGC, stuff->mask);
@@ -1671,7 +1686,7 @@ ProcCopyGC(register ClientPtr client)
int
ProcSetDashes(register ClientPtr client)
{
- register GC *pGC;
+ GC *pGC;
int result;
REQUEST(xSetDashesReq);
@@ -1682,7 +1697,9 @@ ProcSetDashes(register ClientPtr client)
return BadValue;
}
- SECURITY_VERIFY_GC(pGC,stuff->gc, client, DixWriteAccess);
+ result = dixLookupGC(&pGC,stuff->gc, client, DixWriteAccess);
+ if (result != Success)
+ return result;
result = SetDashes(pGC, stuff->dashOffset, stuff->nDashes,
(unsigned char *)&stuff[1]);
@@ -1698,9 +1715,8 @@ ProcSetDashes(register ClientPtr client)
int
ProcSetClipRectangles(register ClientPtr client)
{
- int nr;
- int result;
- register GC *pGC;
+ int nr, result;
+ GC *pGC;
REQUEST(xSetClipRectanglesReq);
REQUEST_AT_LEAST_SIZE(xSetClipRectanglesReq);
@@ -1710,7 +1726,9 @@ ProcSetClipRectangles(register ClientPtr
client->errorValue = stuff->ordering;
return BadValue;
}
- SECURITY_VERIFY_GC(pGC,stuff->gc, client, DixWriteAccess);
+ result = dixLookupGC(&pGC,stuff->gc, client, DixWriteAccess);
+ if (result != Success)
+ return result;
nr = (client->req_len << 2) - sizeof(xSetClipRectanglesReq);
if (nr & 4)
@@ -1727,11 +1745,15 @@ ProcSetClipRectangles(register ClientPtr
int
ProcFreeGC(register ClientPtr client)
{
- register GC *pGC;
+ GC *pGC;
+ int rc;
REQUEST(xResourceReq);
-
REQUEST_SIZE_MATCH(xResourceReq);
- SECURITY_VERIFY_GC(pGC, stuff->id, client, DixDestroyAccess);
+
+ rc = dixLookupGC(&pGC, stuff->id, client, DixDestroyAccess);
+ if (rc != Success)
+ return rc;
+
FreeResource(stuff->id, RT_NONE);
return(client->noClientException);
}
@@ -1766,9 +1788,9 @@ ProcClearToBackground(register ClientPtr
int
ProcCopyArea(register ClientPtr client)
{
- register DrawablePtr pDst;
+ DrawablePtr pDst;
DrawablePtr pSrc;
- register GC *pGC;
+ GC *pGC;
REQUEST(xCopyAreaReq);
RegionPtr pRgn;
int rc;
@@ -1811,7 +1833,7 @@ int
ProcCopyPlane(register ClientPtr client)
{
DrawablePtr psrcDraw, pdstDraw;
- register GC *pGC;
+ GC *pGC;
REQUEST(xCopyPlaneReq);
RegionPtr pRgn;
int rc;
@@ -1862,8 +1884,8 @@ int
ProcPolyPoint(register ClientPtr client)
{
int npoint;
- register GC *pGC;
- register DrawablePtr pDraw;
+ GC *pGC;
+ DrawablePtr pDraw;
REQUEST(xPolyPointReq);
REQUEST_AT_LEAST_SIZE(xPolyPointReq);
@@ -1885,8 +1907,8 @@ int
ProcPolyLine(register ClientPtr client)
{
int npoint;
- register GC *pGC;
- register DrawablePtr pDraw;
+ GC *pGC;
+ DrawablePtr pDraw;
REQUEST(xPolyLineReq);
REQUEST_AT_LEAST_SIZE(xPolyLineReq);
@@ -1908,8 +1930,8 @@ int
ProcPolySegment(register ClientPtr client)
{
int nsegs;
- register GC *pGC;
- register DrawablePtr pDraw;
+ GC *pGC;
+ DrawablePtr pDraw;
REQUEST(xPolySegmentReq);
REQUEST_AT_LEAST_SIZE(xPolySegmentReq);
@@ -1927,8 +1949,8 @@ int
ProcPolyRectangle (register ClientPtr client)
{
int nrects;
- register GC *pGC;
- register DrawablePtr pDraw;
+ GC *pGC;
+ DrawablePtr pDraw;
REQUEST(xPolyRectangleReq);
REQUEST_AT_LEAST_SIZE(xPolyRectangleReq);
@@ -1947,8 +1969,8 @@ int
ProcPolyArc(register ClientPtr client)
{
int narcs;
- register GC *pGC;
- register DrawablePtr pDraw;
+ GC *pGC;
+ DrawablePtr pDraw;
REQUEST(xPolyArcReq);
REQUEST_AT_LEAST_SIZE(xPolyArcReq);
@@ -1966,8 +1988,8 @@ int
ProcFillPoly(register ClientPtr client)
{
int things;
- register GC *pGC;
- register DrawablePtr pDraw;
+ GC *pGC;
+ DrawablePtr pDraw;
REQUEST(xFillPolyReq);
REQUEST_AT_LEAST_SIZE(xFillPolyReq);
@@ -1997,8 +2019,8 @@ int
ProcPolyFillRectangle(register ClientPtr client)
{
int things;
- register GC *pGC;
- register DrawablePtr pDraw;
+ GC *pGC;
+ DrawablePtr pDraw;
REQUEST(xPolyFillRectangleReq);
REQUEST_AT_LEAST_SIZE(xPolyFillRectangleReq);
@@ -2018,8 +2040,8 @@ int
ProcPolyFillArc(register ClientPtr client)
{
int narcs;
- register GC *pGC;
- register DrawablePtr pDraw;
+ GC *pGC;
+ DrawablePtr pDraw;
REQUEST(xPolyFillArcReq);
REQUEST_AT_LEAST_SIZE(xPolyFillArcReq);
@@ -2090,8 +2112,8 @@ ReformatImage (char *base, int nbytes, i
int
ProcPutImage(register ClientPtr client)
{
- register GC *pGC;
- register DrawablePtr pDraw;
+ GC *pGC;
+ DrawablePtr pDraw;
long length; /* length of scanline server padded */
long lengthProto; /* length of scanline protocol padded */
char *tmpImage;
@@ -2411,8 +2433,8 @@ int
ProcImageText8(register ClientPtr client)
{
int err;
- register DrawablePtr pDraw;
- register GC *pGC;
+ DrawablePtr pDraw;
+ GC *pGC;
REQUEST(xImageTextReq);
@@ -2441,8 +2463,8 @@ int
ProcImageText16(register ClientPtr client)
{
int err;
- register DrawablePtr pDraw;
- register GC *pGC;
+ DrawablePtr pDraw;
+ GC *pGC;
REQUEST(xImageTextReq);
@@ -3195,11 +3217,12 @@ int
ProcQueryBestSize (register ClientPtr client)
{
xQueryBestSizeReply reply;
- register DrawablePtr pDraw;
+ DrawablePtr pDraw;
ScreenPtr pScreen;
+ int rc;
REQUEST(xQueryBestSizeReq);
-
REQUEST_SIZE_MATCH(xQueryBestSizeReq);
+
if ((stuff->class != CursorShape) &&
(stuff->class != TileShape) &&
(stuff->class != StippleShape))
@@ -3207,8 +3230,11 @@ ProcQueryBestSize (register ClientPtr cl
client->errorValue = stuff->class;
return(BadValue);
}
- SECURITY_VERIFY_GEOMETRABLE (pDraw, stuff->drawable, client,
- DixReadAccess);
+
+ rc = dixLookupDrawable(&pDraw, stuff->drawable, client, M_ANY,
+ DixReadAccess);
+ if (rc != Success)
+ return rc;
if (stuff->class != CursorShape && pDraw->type == UNDRAWABLE_WINDOW)
return (BadMatch);
pScreen = pDraw->pScreen;
diff --git a/include/dix.h b/include/dix.h
index 09d5fef..7dd321f 100644
--- a/include/dix.h
+++ b/include/dix.h
@@ -239,10 +239,15 @@ SOFTWARE.
if ((stuff->gc == INVALID) || (client->lastGCID != stuff->gc) ||\
(client->lastDrawableID != drawID))\
{\
- SECURITY_VERIFY_GEOMETRABLE(pDraw, drawID, client, DixWriteAccess);\
- SECURITY_VERIFY_GC(pGC, stuff->gc, client, DixReadAccess);\
- if ((pGC->depth != pDraw->depth) ||\
- (pGC->pScreen != pDraw->pScreen))\
+ int rc;\
+ rc = dixLookupDrawable(&(pDraw), drawID, client, M_ANY,\
+ DixWriteAccess);\
+ if (rc != Success)\
+ return rc;\
+ rc = dixLookupGC(&(pGC), stuff->gc, client, DixReadAccess);\
+ if (rc != Success)\
+ return rc;\
+ if ((pGC->depth != pDraw->depth) || (pGC->pScreen != pDraw->pScreen))\
return (BadMatch);\
client->lastDrawable = pDraw;\
client->lastDrawableID = drawID;\
diff --git a/xfixes/region.c b/xfixes/region.c
index a004fc0..91e9fc9 100755
--- a/xfixes/region.c
+++ b/xfixes/region.c
@@ -220,12 +220,15 @@ ProcXFixesCreateRegionFromGC (ClientPtr
{
RegionPtr pRegion, pClip;
GCPtr pGC;
+ int rc;
REQUEST (xXFixesCreateRegionFromGCReq);
REQUEST_SIZE_MATCH (xXFixesCreateRegionFromGCReq);
LEGAL_NEW_RESOURCE (stuff->region, client);
- SECURITY_VERIFY_GC(pGC, stuff->gc, client, DixReadAccess);
+ rc = dixLookupGC(&pGC, stuff->gc, client, DixReadAccess);
+ if (rc != Success)
+ return rc;
switch (pGC->clientClipType) {
case CT_PIXMAP:
@@ -630,10 +633,14 @@ ProcXFixesSetGCClipRegion (ClientPtr cli
GCPtr pGC;
RegionPtr pRegion;
XID vals[2];
+ int rc;
REQUEST(xXFixesSetGCClipRegionReq);
-
REQUEST_SIZE_MATCH(xXFixesSetGCClipRegionReq);
- SECURITY_VERIFY_GC(pGC, stuff->gc, client, DixWriteAccess);
+
+ rc = dixLookupGC(&pGC, stuff->gc, client, DixWriteAccess);
+ if (rc != Success)
+ return rc;
+
VERIFY_REGION_OR_NONE (pRegion, stuff->region, client, DixReadAccess);
if (pRegion)
diff-tree 5e334f06a1ef89891f9df2a371e4662340bec26b (from 51b69ff499c05f59cb1e577c4e8abf6f7f283b3e)
Author: Eamon Walsh <ewalsh at tycho.nsa.gov>
Date: Thu Dec 14 18:27:09 2006 -0500
Remove instances of macros VERIFY_GEOMETRABLE and VERIFY_GC.
diff --git a/Xext/panoramiXprocs.c b/Xext/panoramiXprocs.c
index 2bf94a9..a193c41 100644
--- a/Xext/panoramiXprocs.c
+++ b/Xext/panoramiXprocs.c
@@ -531,10 +531,14 @@ int PanoramiXGetGeometry(ClientPtr clien
{
xGetGeometryReply rep;
DrawablePtr pDraw;
+ int rc;
REQUEST(xResourceReq);
REQUEST_SIZE_MATCH(xResourceReq);
- VERIFY_GEOMETRABLE (pDraw, stuff->id, client);
+ rc = dixLookupDrawable(&pDraw, stuff->id, client, M_ANY, DixUnknownAccess);
+ if (rc != Success)
+ return rc;
+
rep.type = X_Reply;
rep.length = 0;
rep.sequenceNumber = client->sequence;
diff --git a/Xext/shm.c b/Xext/shm.c
index 049c746..4e73319 100644
--- a/Xext/shm.c
+++ b/Xext/shm.c
@@ -727,7 +727,7 @@ ProcPanoramiXShmCreatePixmap(
PixmapPtr pMap = NULL;
DrawablePtr pDraw;
DepthPtr pDepth;
- int i, j, result;
+ int i, j, result, rc;
ShmDescPtr shmdesc;
REQUEST(xShmCreatePixmapReq);
PanoramiXRes *newPix;
@@ -737,7 +737,11 @@ ProcPanoramiXShmCreatePixmap(
if (!sharedPixmaps)
return BadImplementation;
LEGAL_NEW_RESOURCE(stuff->pid, client);
- VERIFY_GEOMETRABLE(pDraw, stuff->drawable, client);
+ rc = dixLookupDrawable(&pDraw, stuff->drawable, client, M_ANY,
+ DixUnknownAccess);
+ if (rc != Success)
+ return rc;
+
VERIFY_SHMPTR(stuff->shmseg, stuff->offset, TRUE, shmdesc, client);
if (!stuff->width || !stuff->height)
{
@@ -1052,9 +1056,9 @@ ProcShmCreatePixmap(client)
register ClientPtr client;
{
PixmapPtr pMap;
- register DrawablePtr pDraw;
+ DrawablePtr pDraw;
DepthPtr pDepth;
- register int i;
+ register int i, rc;
ShmDescPtr shmdesc;
REQUEST(xShmCreatePixmapReq);
@@ -1063,7 +1067,11 @@ ProcShmCreatePixmap(client)
if (!sharedPixmaps)
return BadImplementation;
LEGAL_NEW_RESOURCE(stuff->pid, client);
- VERIFY_GEOMETRABLE(pDraw, stuff->drawable, client);
+ rc = dixLookupDrawable(&pDraw, stuff->drawable, client, M_ANY,
+ DixUnknownAccess);
+ if (rc != Success)
+ return rc;
+
VERIFY_SHMPTR(stuff->shmseg, stuff->offset, TRUE, shmdesc, client);
if (!stuff->width || !stuff->height)
{
diff --git a/Xext/xf86bigfont.c b/Xext/xf86bigfont.c
index 4464706..f50481f 100644
--- a/Xext/xf86bigfont.c
+++ b/Xext/xf86bigfont.c
@@ -447,7 +447,6 @@ ProcXF86BigfontQueryFont(
pFont = (FontPtr)SecurityLookupIDByType(client, stuff->id, RT_FONT,
DixReadAccess);
if (!pFont) {
- /* can't use VERIFY_GC because it might return BadGC */
GC *pGC = (GC *) SecurityLookupIDByType(client, stuff->id, RT_GC,
DixReadAccess);
if (!pGC) {
diff --git a/dix/dispatch.c b/dix/dispatch.c
index 8134cd5..a5a1d03 100644
--- a/dix/dispatch.c
+++ b/dix/dispatch.c
@@ -1385,7 +1385,6 @@ ProcQueryFont(register ClientPtr client)
DixReadAccess);
if (!pFont)
{
- /* can't use VERIFY_GC because it might return BadGC */
pGC = (GC *) SecurityLookupIDByType(client, stuff->id, RT_GC,
DixReadAccess);
if (!pGC)
diff-tree 51b69ff499c05f59cb1e577c4e8abf6f7f283b3e (from 0cf75e74322e2b6a6efc7acf892e04365fde503b)
Author: Eamon Walsh <ewalsh at tycho.nsa.gov>
Date: Thu Dec 14 17:53:43 2006 -0500
Remove instances of macro SECURITY_VERIFY_DRAWABLE.
diff --git a/Xext/panoramiXprocs.c b/Xext/panoramiXprocs.c
index 77a2384..2bf94a9 100644
--- a/Xext/panoramiXprocs.c
+++ b/Xext/panoramiXprocs.c
@@ -1069,6 +1069,7 @@ int PanoramiXCopyArea(ClientPtr client)
DrawablePtr pDst = NULL, pSrc = NULL;
GCPtr pGC = NULL;
RegionPtr pRgn[MAXSCREENS];
+ int rc;
FOR_NSCREENS_BACKWARD(j) {
stuff->dstDrawable = dst->info[j].id;
@@ -1085,8 +1086,11 @@ int PanoramiXCopyArea(ClientPtr client)
VALIDATE_DRAWABLE_AND_GC(stuff->dstDrawable, pDst, pGC, client);
if (stuff->dstDrawable != stuff->srcDrawable) {
- SECURITY_VERIFY_DRAWABLE(pSrc, stuff->srcDrawable, client,
- DixReadAccess);
+ rc = dixLookupDrawable(&pSrc, stuff->srcDrawable, client, 0,
+ DixReadAccess);
+ if (rc != Success)
+ return rc;
+
if ((pDst->pScreen != pSrc->pScreen) ||
(pDst->depth != pSrc->depth)) {
client->errorValue = stuff->dstDrawable;
@@ -1137,7 +1141,7 @@ int PanoramiXCopyArea(ClientPtr client)
int PanoramiXCopyPlane(ClientPtr client)
{
- int j, srcx, srcy, dstx, dsty;
+ int j, srcx, srcy, dstx, dsty, rc;
PanoramiXRes *gc, *src, *dst;
Bool srcIsRoot = FALSE;
Bool dstIsRoot = FALSE;
@@ -1191,8 +1195,11 @@ int PanoramiXCopyPlane(ClientPtr client)
VALIDATE_DRAWABLE_AND_GC(stuff->dstDrawable, pdstDraw, pGC, client);
if (stuff->dstDrawable != stuff->srcDrawable) {
- SECURITY_VERIFY_DRAWABLE(psrcDraw, stuff->srcDrawable, client,
- DixReadAccess);
+ rc = dixLookupDrawable(&psrcDraw, stuff->srcDrawable, client, 0,
+ DixReadAccess);
+ if (rc != Success)
+ return rc;
+
if (pdstDraw->pScreen != psrcDraw->pScreen) {
client->errorValue = stuff->dstDrawable;
return (BadMatch);
diff --git a/damageext/damageext.c b/damageext/damageext.c
index c8f28e9..6083693 100755
--- a/damageext/damageext.c
+++ b/damageext/damageext.c
@@ -173,13 +173,17 @@ ProcDamageCreate (ClientPtr client)
DamageExtPtr pDamageExt;
DamageReportLevel level;
RegionPtr pRegion;
+ int rc;
REQUEST(xDamageCreateReq);
REQUEST_SIZE_MATCH(xDamageCreateReq);
LEGAL_NEW_RESOURCE(stuff->damage, client);
- SECURITY_VERIFY_DRAWABLE (pDrawable, stuff->drawable, client,
- DixReadAccess);
+ rc = dixLookupDrawable(&pDrawable, stuff->drawable, client, 0,
+ DixReadAccess);
+ if (rc != Success)
+ return rc;
+
switch (stuff->level) {
case XDamageReportRawRectangles:
level = DamageReportRawRegion;
diff --git a/dix/dispatch.c b/dix/dispatch.c
index a3de07f..8134cd5 100644
--- a/dix/dispatch.c
+++ b/dix/dispatch.c
@@ -1597,17 +1597,19 @@ ProcFreePixmap(register ClientPtr client
int
ProcCreateGC(register ClientPtr client)
{
- int error;
+ int error, rc;
GC *pGC;
- register DrawablePtr pDraw;
+ DrawablePtr pDraw;
unsigned len;
REQUEST(xCreateGCReq);
REQUEST_AT_LEAST_SIZE(xCreateGCReq);
client->errorValue = stuff->gc;
LEGAL_NEW_RESOURCE(stuff->gc, client);
- SECURITY_VERIFY_DRAWABLE (pDraw, stuff->drawable, client,
- DixReadAccess);
+ rc = dixLookupDrawable(&pDraw, stuff->drawable, client, 0, DixReadAccess);
+ if (rc != Success)
+ return rc;
+
len = client->req_len - (sizeof(xCreateGCReq) >> 2);
if (len != Ones(stuff->mask))
return BadLength;
@@ -1766,18 +1768,21 @@ int
ProcCopyArea(register ClientPtr client)
{
register DrawablePtr pDst;
- register DrawablePtr pSrc;
+ DrawablePtr pSrc;
register GC *pGC;
REQUEST(xCopyAreaReq);
RegionPtr pRgn;
+ int rc;
REQUEST_SIZE_MATCH(xCopyAreaReq);
VALIDATE_DRAWABLE_AND_GC(stuff->dstDrawable, pDst, pGC, client);
if (stuff->dstDrawable != stuff->srcDrawable)
{
- SECURITY_VERIFY_DRAWABLE(pSrc, stuff->srcDrawable, client,
+ rc = dixLookupDrawable(&pSrc, stuff->srcDrawable, client, 0,
DixReadAccess);
+ if (rc != Success)
+ return rc;
if ((pDst->pScreen != pSrc->pScreen) || (pDst->depth != pSrc->depth))
{
client->errorValue = stuff->dstDrawable;
@@ -1806,18 +1811,22 @@ ProcCopyArea(register ClientPtr client)
int
ProcCopyPlane(register ClientPtr client)
{
- register DrawablePtr psrcDraw, pdstDraw;
+ DrawablePtr psrcDraw, pdstDraw;
register GC *pGC;
REQUEST(xCopyPlaneReq);
RegionPtr pRgn;
+ int rc;
REQUEST_SIZE_MATCH(xCopyPlaneReq);
VALIDATE_DRAWABLE_AND_GC(stuff->dstDrawable, pdstDraw, pGC, client);
if (stuff->dstDrawable != stuff->srcDrawable)
{
- SECURITY_VERIFY_DRAWABLE(psrcDraw, stuff->srcDrawable, client,
- DixReadAccess);
+ rc = dixLookupDrawable(&psrcDraw, stuff->srcDrawable, client, 0,
+ DixReadAccess);
+ if (rc != Success)
+ return rc;
+
if (pdstDraw->pScreen != psrcDraw->pScreen)
{
client->errorValue = stuff->dstDrawable;
@@ -2142,8 +2151,8 @@ DoGetImage(register ClientPtr client, in
int x, int y, int width, int height,
Mask planemask, xGetImageReply **im_return)
{
- register DrawablePtr pDraw;
- int nlines, linesPerBuf;
+ DrawablePtr pDraw;
+ int nlines, linesPerBuf, rc;
register int linesDone;
long widthBytesLine, length;
Mask plane = 0;
@@ -2156,7 +2165,10 @@ DoGetImage(register ClientPtr client, in
client->errorValue = format;
return(BadValue);
}
- SECURITY_VERIFY_DRAWABLE(pDraw, drawable, client, DixReadAccess);
+ rc = dixLookupDrawable(&pDraw, drawable, client, 0, DixReadAccess);
+ if (rc != Success)
+ return rc;
+
if(pDraw->type == DRAWABLE_WINDOW)
{
if( /* check for being viewable */
diff --git a/randr/rrscreen.c b/randr/rrscreen.c
index b4004a3..3b9263b 100644
--- a/randr/rrscreen.c
+++ b/randr/rrscreen.c
@@ -703,7 +703,7 @@ ProcRRSetScreenConfig (ClientPtr client)
REQUEST(xRRSetScreenConfigReq);
xRRSetScreenConfigReply rep;
DrawablePtr pDraw;
- int n;
+ int n, rc;
ScreenPtr pScreen;
rrScrPrivPtr pScrPriv;
TimeStamp configTime;
@@ -730,8 +730,9 @@ ProcRRSetScreenConfig (ClientPtr client)
has_rate = FALSE;
}
- SECURITY_VERIFY_DRAWABLE(pDraw, stuff->drawable, client,
- DixWriteAccess);
+ rc = dixLookupDrawable(&pDraw, stuff->drawable, client, 0, DixWriteAccess);
+ if (rc != Success)
+ return rc;
pScreen = pDraw->pScreen;
diff --git a/render/render.c b/render/render.c
index 51a3fa6..126d08d 100644
--- a/render/render.c
+++ b/render/render.c
@@ -614,15 +614,17 @@ ProcRenderCreatePicture (ClientPtr clien
PicturePtr pPicture;
DrawablePtr pDrawable;
PictFormatPtr pFormat;
- int len;
- int error;
+ int len, error, rc;
REQUEST(xRenderCreatePictureReq);
REQUEST_AT_LEAST_SIZE(xRenderCreatePictureReq);
LEGAL_NEW_RESOURCE(stuff->pid, client);
- SECURITY_VERIFY_DRAWABLE(pDrawable, stuff->drawable, client,
- DixWriteAccess);
+ rc = dixLookupDrawable(&pDrawable, stuff->drawable, client, 0,
+ DixWriteAccess);
+ if (rc != Success)
+ return rc;
+
pFormat = (PictFormatPtr) SecurityLookupIDByType (client,
stuff->format,
PictFormatType,
@@ -1687,14 +1689,15 @@ ProcRenderQueryFilters (ClientPtr client
int nnames;
ScreenPtr pScreen;
PictureScreenPtr ps;
- int i, j;
- int len;
- int total_bytes;
+ int i, j, len, total_bytes, rc;
INT16 *aliases;
char *names;
REQUEST_SIZE_MATCH(xRenderQueryFiltersReq);
- SECURITY_VERIFY_DRAWABLE(pDrawable, stuff->drawable, client, DixReadAccess);
+ rc = dixLookupDrawable(&pDrawable, stuff->drawable, client, 0,
+ DixReadAccess);
+ if (rc != Success)
+ return rc;
pScreen = pDrawable->pScreen;
nbytesName = 0;
diff-tree 0cf75e74322e2b6a6efc7acf892e04365fde503b (from ab1886df73b73360fa3bd7ce8e01affc074cbc8d)
Author: Eamon Walsh <ewalsh at tycho.nsa.gov>
Date: Thu Dec 14 17:27:12 2006 -0500
Remove instances of macros LOOKUP_DRAWABLE and VERIFY_DRAWABLE.
diff --git a/Xext/panoramiXprocs.c b/Xext/panoramiXprocs.c
index 6833084..77a2384 100644
--- a/Xext/panoramiXprocs.c
+++ b/Xext/panoramiXprocs.c
@@ -1028,10 +1028,14 @@ int PanoramiXCopyArea(ClientPtr client)
DrawablePtr pDst;
GCPtr pGC;
char *data;
- int pitch;
+ int pitch, rc;
- FOR_NSCREENS(j)
- VERIFY_DRAWABLE(drawables[j], src->info[j].id, client);
+ FOR_NSCREENS(j) {
+ rc = dixLookupDrawable(drawables+j, src->info[j].id, client, 0,
+ DixUnknownAccess);
+ if (rc != Success)
+ return rc;
+ }
pitch = PixmapBytePad(stuff->width, drawables[0]->depth);
if(!(data = xcalloc(1, stuff->height * pitch)))
@@ -1754,7 +1758,7 @@ int PanoramiXGetImage(ClientPtr client)
xGetImageReply xgi;
Bool isRoot;
char *pBuf;
- int i, x, y, w, h, format;
+ int i, x, y, w, h, format, rc;
Mask plane = 0, planemask;
int linesDone, nlines, linesPerBuf;
long widthBytesLine, length;
@@ -1775,7 +1779,10 @@ int PanoramiXGetImage(ClientPtr client)
if(draw->type == XRT_PIXMAP)
return (*SavedProcVector[X_GetImage])(client);
- VERIFY_DRAWABLE(pDraw, stuff->drawable, client);
+ rc = dixLookupDrawable(&pDraw, stuff->drawable, client, 0,
+ DixUnknownAccess);
+ if (rc != Success)
+ return rc;
if(!((WindowPtr)pDraw)->realized)
return(BadMatch);
@@ -1809,8 +1816,12 @@ int PanoramiXGetImage(ClientPtr client)
}
drawables[0] = pDraw;
- for(i = 1; i < PanoramiXNumScreens; i++)
- VERIFY_DRAWABLE(drawables[i], draw->info[i].id, client);
+ for(i = 1; i < PanoramiXNumScreens; i++) {
+ rc = dixLookupDrawable(drawables+i, draw->info[i].id, client, 0,
+ DixUnknownAccess);
+ if (rc != Success)
+ return rc;
+ }
xgi.visual = wVisual (((WindowPtr) pDraw));
xgi.type = X_Reply;
diff --git a/Xext/shm.c b/Xext/shm.c
index 0c2299a..049c746 100644
--- a/Xext/shm.c
+++ b/Xext/shm.c
@@ -606,7 +606,7 @@ ProcPanoramiXShmGetImage(ClientPtr clien
DrawablePtr pDraw;
xShmGetImageReply xgi;
ShmDescPtr shmdesc;
- int i, x, y, w, h, format;
+ int i, x, y, w, h, format, rc;
Mask plane = 0, planemask;
long lenPer = 0, length, widthBytesLine;
Bool isRoot;
@@ -627,7 +627,10 @@ ProcPanoramiXShmGetImage(ClientPtr clien
if (draw->type == XRT_PIXMAP)
return ProcShmGetImage(client);
- VERIFY_DRAWABLE(pDraw, stuff->drawable, client);
+ rc = dixLookupDrawable(&pDraw, stuff->drawable, client, 0,
+ DixUnknownAccess);
+ if (rc != Success)
+ return rc;
VERIFY_SHMPTR(stuff->shmseg, stuff->offset, TRUE, shmdesc, client);
@@ -660,8 +663,12 @@ ProcPanoramiXShmGetImage(ClientPtr clien
}
drawables[0] = pDraw;
- for(i = 1; i < PanoramiXNumScreens; i++)
- VERIFY_DRAWABLE(drawables[i], draw->info[i].id, client);
+ for(i = 1; i < PanoramiXNumScreens; i++) {
+ rc = dixLookupDrawable(drawables+i, draw->info[i].id, client, 0,
+ DixUnknownAccess);
+ if (rc != Success)
+ return rc;
+ }
xgi.visual = wVisual(((WindowPtr)pDraw));
xgi.type = X_Reply;
@@ -909,12 +916,12 @@ static int
ProcShmGetImage(client)
register ClientPtr client;
{
- register DrawablePtr pDraw;
+ DrawablePtr pDraw;
long lenPer = 0, length;
Mask plane = 0;
xShmGetImageReply xgi;
ShmDescPtr shmdesc;
- int n;
+ int n, rc;
REQUEST(xShmGetImageReq);
@@ -924,7 +931,10 @@ ProcShmGetImage(client)
client->errorValue = stuff->format;
return(BadValue);
}
- VERIFY_DRAWABLE(pDraw, stuff->drawable, client);
+ rc = dixLookupDrawable(&pDraw, stuff->drawable, client, 0,
+ DixUnknownAccess);
+ if (rc != Success)
+ return rc;
VERIFY_SHMPTR(stuff->shmseg, stuff->offset, TRUE, shmdesc, client);
if (pDraw->type == DRAWABLE_WINDOW)
{
diff --git a/Xext/xvdisp.c b/Xext/xvdisp.c
index ec2b4f8..d666044 100644
--- a/Xext/xvdisp.c
+++ b/Xext/xvdisp.c
@@ -717,15 +717,14 @@ ProcXvGetStill(ClientPtr client)
static int
ProcXvSelectVideoNotify(ClientPtr client)
{
- register DrawablePtr pDraw;
+ DrawablePtr pDraw;
+ int rc;
REQUEST(xvSelectVideoNotifyReq);
REQUEST_SIZE_MATCH(xvSelectVideoNotifyReq);
- if(!(pDraw = (DrawablePtr)LOOKUP_DRAWABLE(stuff->drawable, client) ))
- {
- client->errorValue = stuff->drawable;
- return (BadWindow);
- }
+ rc = dixLookupDrawable(&pDraw, stuff->drawable, client, 0, DixUnknownAccess);
+ if (rc != Success)
+ return rc;
return XVCALL(diSelectVideoNotify)(client, pDraw, stuff->onoff);
@@ -822,8 +821,8 @@ ProcXvUngrabPort(ClientPtr client)
static int
ProcXvStopVideo(ClientPtr client)
{
- int status;
- register DrawablePtr pDraw;
+ int status, rc;
+ DrawablePtr pDraw;
XvPortPtr pPort;
REQUEST(xvStopVideoReq);
REQUEST_SIZE_MATCH(xvStopVideoReq);
@@ -840,11 +839,9 @@ ProcXvStopVideo(ClientPtr client)
return (status);
}
- if(!(pDraw = LOOKUP_DRAWABLE(stuff->drawable, client) ))
- {
- client->errorValue = stuff->drawable;
- return (BadDrawable);
- }
+ rc = dixLookupDrawable(&pDraw, stuff->drawable, client, 0, DixUnknownAccess);
+ if (rc != Success)
+ return rc;
return XVCALL(diStopVideo)(client, pPort, pDraw);
diff-tree ab1886df73b73360fa3bd7ce8e01affc074cbc8d (from 60cdc592fe042c03ceb5d4c3344acfbbf5d8ae28)
Author: Eamon Walsh <ewalsh at tycho.nsa.gov>
Date: Thu Dec 14 15:42:19 2006 -0500
Add new, combined dix lookup functions (tweak).
diff --git a/dix/dixutils.c b/dix/dixutils.c
index f9980c5..3479ddc 100644
--- a/dix/dixutils.c
+++ b/dix/dixutils.c
@@ -298,7 +298,7 @@ _X_EXPORT pointer
SecurityLookupDrawable(XID id, ClientPtr client, Mask access_mode)
{
DrawablePtr pDraw;
- int i = dixLookupDrawable(&pDraw, id, client, access_mode, TRUE);
+ int i = dixLookupDrawable(&pDraw, id, client, M_DRAWABLE, access_mode);
return (i == Success) ? pDraw : NULL;
}
diff-tree 60cdc592fe042c03ceb5d4c3344acfbbf5d8ae28 (from 6c46645cfc1afda8aeabfe0ed4d9342673b702f1)
Author: Eamon Walsh <ewalsh at tycho.nsa.gov>
Date: Thu Dec 14 14:46:03 2006 -0500
Add new, combined dix lookup functions.
diff --git a/dix/dixutils.c b/dix/dixutils.c
index fca55d9..f9980c5 100644
--- a/dix/dixutils.c
+++ b/dix/dixutils.c
@@ -194,115 +194,129 @@ CompareISOLatin1Lowered(unsigned char *s
return (int) c1 - (int) c2;
}
-#ifdef XACE
-
-/* SecurityLookupWindow and SecurityLookupDrawable:
- * Look up the window/drawable taking into account the client doing
- * the lookup and the type of access desired. Return the window/drawable
- * if it exists and the client is allowed access, else return NULL.
- * Most Proc* functions should be calling these instead of
- * LookupWindow and LookupDrawable, which do no access checks.
- * XACE note: need to see if client->lastDrawableID can still be used here.
+/*
+ * dixLookupWindow and dixLookupDrawable:
+ * Look up the window/drawable taking into account the client doing the
+ * lookup, the type of drawable desired, and the type of access desired.
+ * Return Success with *pDraw set if the window/drawable exists and the client
+ * is allowed access, else return an error code with *pDraw set to NULL. The
+ * access mask values are defined in resource.h. The type mask values are
+ * defined in pixmap.h, with zero equivalent to M_DRAWABLE.
*/
+_X_EXPORT int
+dixLookupDrawable(DrawablePtr *pDraw, XID id, ClientPtr client,
+ Mask type, Mask access)
+{
+ DrawablePtr pTmp;
+ RESTYPE rtype;
+ *pDraw = NULL;
+ client->errorValue = id;
+
+ if (id == INVALID)
+ return BadDrawable;
+
+ if (id == client->lastDrawableID) {
+ pTmp = client->lastDrawable;
+
+ /* an access check is required for cached drawables */
+ rtype = (pTmp->type | M_WINDOW) ? RT_WINDOW : RT_PIXMAP;
+ if (!XaceHook(XACE_RESOURCE_ACCESS, client, id, rtype, access, pTmp))
+ return BadDrawable;
+ } else
+ pTmp = (DrawablePtr)SecurityLookupIDByClass(client, id, RC_DRAWABLE,
+ access);
+ if (!pTmp)
+ return BadDrawable;
+ if (!((1 << pTmp->type) | (type ? type : M_DRAWABLE)))
+ return BadMatch;
+
+ if (pTmp->type | M_DRAWABLE) {
+ client->lastDrawable = pTmp;
+ client->lastDrawableID = id;
+ client->lastGCID = INVALID;
+ client->lastGC = (GCPtr)NULL;
+ }
+ *pDraw = pTmp;
+ return Success;
+}
-_X_EXPORT WindowPtr
-SecurityLookupWindow(XID rid, ClientPtr client, Mask access_mode)
+_X_EXPORT int
+dixLookupWindow(WindowPtr *pWin, XID id, ClientPtr client, Mask access)
{
- client->errorValue = rid;
- if(rid == INVALID)
- return NULL;
- return (WindowPtr)SecurityLookupIDByType(client, rid, RT_WINDOW, access_mode);
+ int rc;
+ rc = dixLookupDrawable((DrawablePtr*)pWin, id, client, M_WINDOW, access);
+ return (rc == BadDrawable) ? BadWindow : rc;
}
+_X_EXPORT int
+dixLookupGC(GCPtr *pGC, XID id, ClientPtr client, Mask access)
+{
+ GCPtr pTmp = (GCPtr)SecurityLookupIDByType(client, id, RT_GC, access);
+ if (pTmp) {
+ *pGC = pTmp;
+ return Success;
+ }
+ client->errorValue = id;
+ *pGC = NULL;
+ return BadGC;
+}
-_X_EXPORT pointer
-SecurityLookupDrawable(XID rid, ClientPtr client, Mask access_mode)
+_X_EXPORT int
+dixLookupClient(ClientPtr *pClient, XID rid, ClientPtr client)
{
- register DrawablePtr pDraw;
+ pointer pRes = (pointer)SecurityLookupIDByClass(client, rid, RC_ANY,
+ DixReadAccess);
+ int clientIndex = CLIENT_ID(rid);
- if(rid == INVALID)
- return (pointer) NULL;
- pDraw = (DrawablePtr)SecurityLookupIDByClass(client, rid, RC_DRAWABLE,
- access_mode);
- if (pDraw && (pDraw->type != UNDRAWABLE_WINDOW))
- return (pointer)pDraw;
- return (pointer)NULL;
+ if (clientIndex && pRes && clients[clientIndex] && !(rid & SERVER_BIT)) {
+ *pClient = clients[clientIndex];
+ return Success;
+ }
+ *pClient = NULL;
+ return BadValue;
}
-/* We can't replace the LookupWindow and LookupDrawable functions with
- * macros because of compatibility with loadable servers.
+/*
+ * These are deprecated compatibility functions and will be removed soon!
+ * Please use the new dixLookup*() functions above.
*/
-
_X_EXPORT WindowPtr
-LookupWindow(XID rid, ClientPtr client)
+SecurityLookupWindow(XID id, ClientPtr client, Mask access_mode)
{
- return SecurityLookupWindow(rid, client, DixUnknownAccess);
+ WindowPtr pWin;
+ int i = dixLookupWindow(&pWin, id, client, access_mode);
+ return (i == Success) ? pWin : NULL;
}
-_X_EXPORT pointer
-LookupDrawable(XID rid, ClientPtr client)
+_X_EXPORT WindowPtr
+LookupWindow(XID id, ClientPtr client)
{
- return SecurityLookupDrawable(rid, client, DixUnknownAccess);
+ return SecurityLookupWindow(id, client, DixUnknownAccess);
}
-#else /* not XACE */
-
-WindowPtr
-LookupWindow(XID rid, ClientPtr client)
+_X_EXPORT pointer
+SecurityLookupDrawable(XID id, ClientPtr client, Mask access_mode)
{
- WindowPtr pWin;
-
- client->errorValue = rid;
- if(rid == INVALID)
- return NULL;
- if (client->lastDrawableID == rid)
- {
- if (client->lastDrawable->type == DRAWABLE_WINDOW)
- return ((WindowPtr) client->lastDrawable);
- return (WindowPtr) NULL;
- }
- pWin = (WindowPtr)LookupIDByType(rid, RT_WINDOW);
- if (pWin && pWin->drawable.type == DRAWABLE_WINDOW) {
- client->lastDrawable = (DrawablePtr) pWin;
- client->lastDrawableID = rid;
- client->lastGCID = INVALID;
- client->lastGC = (GCPtr)NULL;
- }
- return pWin;
+ DrawablePtr pDraw;
+ int i = dixLookupDrawable(&pDraw, id, client, access_mode, TRUE);
+ return (i == Success) ? pDraw : NULL;
}
-
-pointer
-LookupDrawable(XID rid, ClientPtr client)
+_X_EXPORT pointer
+LookupDrawable(XID id, ClientPtr client)
{
- register DrawablePtr pDraw;
-
- if(rid == INVALID)
- return (pointer) NULL;
- if (client->lastDrawableID == rid)
- return ((pointer) client->lastDrawable);
- pDraw = (DrawablePtr)LookupIDByClass(rid, RC_DRAWABLE);
- if (pDraw && (pDraw->type != UNDRAWABLE_WINDOW))
- return (pointer)pDraw;
- return (pointer)NULL;
+ return SecurityLookupDrawable(id, client, DixUnknownAccess);
}
-#endif /* XACE */
-
_X_EXPORT ClientPtr
-LookupClient(XID rid, ClientPtr client)
+LookupClient(XID id, ClientPtr client)
{
- pointer pRes = (pointer)SecurityLookupIDByClass(client, rid, RC_ANY,
- DixReadAccess);
- int clientIndex = CLIENT_ID(rid);
-
- if (clientIndex && pRes && clients[clientIndex] && !(rid & SERVER_BIT))
- {
- return clients[clientIndex];
- }
- return (ClientPtr)NULL;
+ ClientPtr pClient;
+ int i = dixLookupClient(&pClient, id, client);
+ return (i == Success) ? pClient : NULL;
}
+/* end deprecated functions */
int
AlterSaveSetForClient(ClientPtr client, WindowPtr pWin, unsigned mode,
diff --git a/hw/xfree86/loader/dixsym.c b/hw/xfree86/loader/dixsym.c
index 27a3093..32e0e4f 100644
--- a/hw/xfree86/loader/dixsym.c
+++ b/hw/xfree86/loader/dixsym.c
@@ -155,17 +155,21 @@ _X_HIDDEN void *dixLookupTab[] = {
SYMFUNC(CompareTimeStamps)
SYMFUNC(CopyISOLatin1Lowered)
SYMFUNC(DeleteCallback)
+ SYMFUNC(dixLookupDrawable)
+ SYMFUNC(dixLookupWindow)
+ SYMFUNC(dixLookupClient)
+ SYMFUNC(dixLookupGC)
+ /* following are deprecated */
SYMFUNC(LookupClient)
SYMFUNC(LookupDrawable)
SYMFUNC(LookupWindow)
+ SYMFUNC(SecurityLookupDrawable)
+ SYMFUNC(SecurityLookupWindow)
+ /* end deprecated */
SYMFUNC(NoopDDA)
SYMFUNC(QueueWorkProc)
SYMFUNC(RegisterBlockAndWakeupHandlers)
SYMFUNC(RemoveBlockAndWakeupHandlers)
-#ifdef XACE
- SYMFUNC(SecurityLookupDrawable)
- SYMFUNC(SecurityLookupWindow)
-#endif
/* events.c */
SYMFUNC(CheckCursorConfinement)
SYMFUNC(DeliverEvents)
diff --git a/include/dix.h b/include/dix.h
index 2c87a48..09d5fef 100644
--- a/include/dix.h
+++ b/include/dix.h
@@ -375,47 +375,40 @@ extern int CompareISOLatin1Lowered(
unsigned char * /*b*/,
int blen);
-#ifdef XACE
-
-extern WindowPtr SecurityLookupWindow(
- XID /*rid*/,
- ClientPtr /*client*/,
- Mask /*access_mode*/);
-
-extern pointer SecurityLookupDrawable(
- XID /*rid*/,
- ClientPtr /*client*/,
- Mask /*access_mode*/);
-
-extern WindowPtr LookupWindow(
- XID /*rid*/,
- ClientPtr /*client*/);
-
-extern pointer LookupDrawable(
- XID /*rid*/,
- ClientPtr /*client*/);
-
-#else
-
-extern WindowPtr LookupWindow(
- XID /*rid*/,
- ClientPtr /*client*/);
-
-extern pointer LookupDrawable(
- XID /*rid*/,
- ClientPtr /*client*/);
-
-#define SecurityLookupWindow(rid, client, access_mode) \
- LookupWindow(rid, client)
-
-#define SecurityLookupDrawable(rid, client, access_mode) \
- LookupDrawable(rid, client)
-
-#endif /* XACE */
+extern int dixLookupWindow(
+ WindowPtr *result,
+ XID id,
+ ClientPtr client,
+ Mask access_mode);
+
+extern int dixLookupDrawable(
+ DrawablePtr *result,
+ XID id,
+ ClientPtr client,
+ Mask type_mask,
+ Mask access_mode);
+
+extern int dixLookupGC(
+ GCPtr *result,
+ XID id,
+ ClientPtr client,
+ Mask access_mode);
+
+extern int dixLookupClient(
+ ClientPtr *result,
+ XID id,
+ ClientPtr client);
-extern ClientPtr LookupClient(
- XID /*rid*/,
- ClientPtr /*client*/);
+/*
+ * These are deprecated compatibility functions and will be removed soon!
+ * Please use the new dixLookup*() functions above.
+ */
+extern WindowPtr SecurityLookupWindow(XID, ClientPtr, Mask);
+extern WindowPtr LookupWindow(XID, ClientPtr);
+extern pointer SecurityLookupDrawable(XID, ClientPtr, Mask);
+extern pointer LookupDrawable(XID, ClientPtr);
+extern ClientPtr LookupClient(XID, ClientPtr);
+/* end deprecated functions */
extern void NoopDDA(void);
diff --git a/include/pixmap.h b/include/pixmap.h
index 3276fad..19e682a 100644
--- a/include/pixmap.h
+++ b/include/pixmap.h
@@ -58,6 +58,16 @@ SOFTWARE.
#define UNDRAWABLE_WINDOW 2
#define DRAWABLE_BUFFER 3
+/* corresponding type masks for dixLookupDrawable() */
+#define M_DRAWABLE_WINDOW (1<<0)
+#define M_DRAWABLE_PIXMAP (1<<1)
+#define M_UNDRAWABLE_WINDOW (1<<2)
+#define M_DRAWABLE_BUFFER (1<<3)
+#define M_ANY (-1)
+#define M_WINDOW (M_DRAWABLE_WINDOW|M_UNDRAWABLE_WINDOW)
+#define M_DRAWABLE (M_DRAWABLE_WINDOW|M_DRAWABLE_PIXMAP|M_DRAWABLE_BUFFER)
+#define M_UNDRAWABLE (M_UNDRAWABLE_WINDOW)
+
/* flags to PaintWindow() */
#define PW_BACKGROUND 0
#define PW_BORDER 1
diff-tree 6c46645cfc1afda8aeabfe0ed4d9342673b702f1 (from b88ad820fac81d0dfd557a384bf0406e8893e7af)
Author: Eamon Walsh <ewalsh at tycho.nsa.gov>
Date: Thu Dec 14 14:45:42 2006 -0500
Naming change: Security*Access -> Dix*Access
diff --git a/Xext/appgroup.c b/Xext/appgroup.c
index 650dc0a..4f30005 100644
--- a/Xext/appgroup.c
+++ b/Xext/appgroup.c
@@ -432,7 +432,7 @@ int ProcXagDestroy(
REQUEST_SIZE_MATCH (xXagDestroyReq);
pAppGrp = (AppGroupPtr)SecurityLookupIDByType (client,
- (XID)stuff->app_group, RT_APPGROUP, SecurityReadAccess);
+ (XID)stuff->app_group, RT_APPGROUP, DixReadAccess);
if (!pAppGrp) return XagBadAppGroup;
FreeResource ((XID)stuff->app_group, RT_NONE);
if (--XagCallbackRefCount == 0)
@@ -451,7 +451,7 @@ int ProcXagGetAttr(
REQUEST_SIZE_MATCH (xXagGetAttrReq);
pAppGrp = (AppGroupPtr)SecurityLookupIDByType (client,
- (XID)stuff->app_group, RT_APPGROUP, SecurityReadAccess);
+ (XID)stuff->app_group, RT_APPGROUP, DixReadAccess);
if (!pAppGrp) return XagBadAppGroup;
rep.type = X_Reply;
rep.length = 0;
diff --git a/Xext/cup.c b/Xext/cup.c
index 10d13ba..6bfa278 100644
--- a/Xext/cup.c
+++ b/Xext/cup.c
@@ -227,7 +227,7 @@ int ProcStoreColors(
REQUEST_AT_LEAST_SIZE (xXcupStoreColorsReq);
pcmp = (ColormapPtr) SecurityLookupIDByType (client, stuff->cmap,
- RT_COLORMAP, SecurityWriteAccess);
+ RT_COLORMAP, DixWriteAccess);
if (pcmp) {
int ncolors, n;
diff --git a/Xext/panoramiXprocs.c b/Xext/panoramiXprocs.c
index 8bb4c59..6833084 100644
--- a/Xext/panoramiXprocs.c
+++ b/Xext/panoramiXprocs.c
@@ -91,7 +91,7 @@ int PanoramiXCreateWindow(ClientPtr clie
return BadLength;
if (!(parent = (PanoramiXRes *)SecurityLookupIDByType(
- client, stuff->parent, XRT_WINDOW, SecurityWriteAccess)))
+ client, stuff->parent, XRT_WINDOW, DixWriteAccess)))
return BadWindow;
if(stuff->class == CopyFromParent)
@@ -105,7 +105,7 @@ int PanoramiXCreateWindow(ClientPtr clie
tmp = *((CARD32 *) &stuff[1] + pback_offset);
if ((tmp != None) && (tmp != ParentRelative)) {
if(!(backPix = (PanoramiXRes*) SecurityLookupIDByType(
- client, tmp, XRT_PIXMAP, SecurityReadAccess)))
+ client, tmp, XRT_PIXMAP, DixReadAccess)))
return BadPixmap;
}
}
@@ -114,7 +114,7 @@ int PanoramiXCreateWindow(ClientPtr clie
tmp = *((CARD32 *) &stuff[1] + pbord_offset);
if (tmp != CopyFromParent) {
if(!(bordPix = (PanoramiXRes*) SecurityLookupIDByType(
- client, tmp, XRT_PIXMAP, SecurityReadAccess)))
+ client, tmp, XRT_PIXMAP, DixReadAccess)))
return BadPixmap;
}
}
@@ -123,7 +123,7 @@ int PanoramiXCreateWindow(ClientPtr clie
tmp = *((CARD32 *) &stuff[1] + cmap_offset);
if ((tmp != CopyFromParent) && (tmp != None)) {
if(!(cmap = (PanoramiXRes*) SecurityLookupIDByType(
- client, tmp, XRT_COLORMAP, SecurityReadAccess)))
+ client, tmp, XRT_COLORMAP, DixReadAccess)))
return BadColor;
}
}
@@ -192,7 +192,7 @@ int PanoramiXChangeWindowAttributes(Clie
return BadLength;
if (!(win = (PanoramiXRes *)SecurityLookupIDByType(
- client, stuff->window, XRT_WINDOW, SecurityWriteAccess)))
+ client, stuff->window, XRT_WINDOW, DixWriteAccess)))
return BadWindow;
if((win->u.win.class == InputOnly) &&
@@ -204,7 +204,7 @@ int PanoramiXChangeWindowAttributes(Clie
tmp = *((CARD32 *) &stuff[1] + pback_offset);
if ((tmp != None) && (tmp != ParentRelative)) {
if(!(backPix = (PanoramiXRes*) SecurityLookupIDByType(
- client, tmp, XRT_PIXMAP, SecurityReadAccess)))
+ client, tmp, XRT_PIXMAP, DixReadAccess)))
return BadPixmap;
}
}
@@ -213,7 +213,7 @@ int PanoramiXChangeWindowAttributes(Clie
tmp = *((CARD32 *) &stuff[1] + pbord_offset);
if (tmp != CopyFromParent) {
if(!(bordPix = (PanoramiXRes*) SecurityLookupIDByType(
- client, tmp, XRT_PIXMAP, SecurityReadAccess)))
+ client, tmp, XRT_PIXMAP, DixReadAccess)))
return BadPixmap;
}
}
@@ -222,7 +222,7 @@ int PanoramiXChangeWindowAttributes(Clie
tmp = *((CARD32 *) &stuff[1] + cmap_offset);
if ((tmp != CopyFromParent) && (tmp != None)) {
if(!(cmap = (PanoramiXRes*) SecurityLookupIDByType(
- client, tmp, XRT_COLORMAP, SecurityReadAccess)))
+ client, tmp, XRT_COLORMAP, DixReadAccess)))
return BadColor;
}
}
@@ -251,7 +251,7 @@ int PanoramiXDestroyWindow(ClientPtr cli
REQUEST_SIZE_MATCH(xResourceReq);
if(!(win = (PanoramiXRes *)SecurityLookupIDByType(
- client, stuff->id, XRT_WINDOW, SecurityDestroyAccess)))
+ client, stuff->id, XRT_WINDOW, DixDestroyAccess)))
return BadWindow;
FOR_NSCREENS_BACKWARD(j) {
@@ -276,7 +276,7 @@ int PanoramiXDestroySubwindows(ClientPtr
REQUEST_SIZE_MATCH(xResourceReq);
if(!(win = (PanoramiXRes *)SecurityLookupIDByType(
- client, stuff->id, XRT_WINDOW, SecurityDestroyAccess)))
+ client, stuff->id, XRT_WINDOW, DixDestroyAccess)))
return BadWindow;
FOR_NSCREENS_BACKWARD(j) {
@@ -301,7 +301,7 @@ int PanoramiXChangeSaveSet(ClientPtr cli
REQUEST_SIZE_MATCH(xChangeSaveSetReq);
if(!(win = (PanoramiXRes *)SecurityLookupIDByType(
- client, stuff->window, XRT_WINDOW, SecurityReadAccess)))
+ client, stuff->window, XRT_WINDOW, DixReadAccess)))
return BadWindow;
FOR_NSCREENS_BACKWARD(j) {
@@ -325,11 +325,11 @@ int PanoramiXReparentWindow(ClientPtr cl
REQUEST_SIZE_MATCH(xReparentWindowReq);
if(!(win = (PanoramiXRes *)SecurityLookupIDByType(
- client, stuff->window, XRT_WINDOW, SecurityWriteAccess)))
+ client, stuff->window, XRT_WINDOW, DixWriteAccess)))
return BadWindow;
if(!(parent = (PanoramiXRes *)SecurityLookupIDByType(
- client, stuff->parent, XRT_WINDOW, SecurityWriteAccess)))
+ client, stuff->parent, XRT_WINDOW, DixWriteAccess)))
return BadWindow;
x = stuff->x;
@@ -360,7 +360,7 @@ int PanoramiXMapWindow(ClientPtr client)
REQUEST_SIZE_MATCH(xResourceReq);
if(!(win = (PanoramiXRes *)SecurityLookupIDByType(
- client, stuff->id, XRT_WINDOW, SecurityReadAccess)))
+ client, stuff->id, XRT_WINDOW, DixReadAccess)))
return BadWindow;
FOR_NSCREENS_FORWARD(j) {
@@ -382,7 +382,7 @@ int PanoramiXMapSubwindows(ClientPtr cli
REQUEST_SIZE_MATCH(xResourceReq);
if(!(win = (PanoramiXRes *)SecurityLookupIDByType(
- client, stuff->id, XRT_WINDOW, SecurityReadAccess)))
+ client, stuff->id, XRT_WINDOW, DixReadAccess)))
return BadWindow;
FOR_NSCREENS_FORWARD(j) {
@@ -404,7 +404,7 @@ int PanoramiXUnmapWindow(ClientPtr clien
REQUEST_SIZE_MATCH(xResourceReq);
if(!(win = (PanoramiXRes *)SecurityLookupIDByType(
- client, stuff->id, XRT_WINDOW, SecurityReadAccess)))
+ client, stuff->id, XRT_WINDOW, DixReadAccess)))
return BadWindow;
FOR_NSCREENS_FORWARD(j) {
@@ -426,7 +426,7 @@ int PanoramiXUnmapSubwindows(ClientPtr c
REQUEST_SIZE_MATCH(xResourceReq);
if(!(win = (PanoramiXRes *)SecurityLookupIDByType(
- client, stuff->id, XRT_WINDOW, SecurityReadAccess)))
+ client, stuff->id, XRT_WINDOW, DixReadAccess)))
return BadWindow;
FOR_NSCREENS_FORWARD(j) {
@@ -457,11 +457,11 @@ int PanoramiXConfigureWindow(ClientPtr c
/* because we need the parent */
if (!(pWin = (WindowPtr)SecurityLookupIDByType(
- client, stuff->window, RT_WINDOW, SecurityWriteAccess)))
+ client, stuff->window, RT_WINDOW, DixWriteAccess)))
return BadWindow;
if (!(win = (PanoramiXRes *)SecurityLookupIDByType(
- client, stuff->window, XRT_WINDOW, SecurityWriteAccess)))
+ client, stuff->window, XRT_WINDOW, DixWriteAccess)))
return BadWindow;
if ((Mask)stuff->mask & CWSibling) {
@@ -469,7 +469,7 @@ int PanoramiXConfigureWindow(ClientPtr c
sib_offset = Ones((Mask)stuff->mask & (CWSibling - 1));
if ((tmp = *((CARD32 *) &stuff[1] + sib_offset))) {
if(!(sib = (PanoramiXRes*) SecurityLookupIDByType(
- client, tmp, XRT_WINDOW, SecurityReadAccess)))
+ client, tmp, XRT_WINDOW, DixReadAccess)))
return BadWindow;
}
}
@@ -514,7 +514,7 @@ int PanoramiXCirculateWindow(ClientPtr c
REQUEST_SIZE_MATCH(xCirculateWindowReq);
if(!(win = (PanoramiXRes *)SecurityLookupIDByType(
- client, stuff->window, XRT_WINDOW, SecurityWriteAccess)))
+ client, stuff->window, XRT_WINDOW, DixWriteAccess)))
return BadWindow;
FOR_NSCREENS_FORWARD(j) {
@@ -579,11 +579,11 @@ int PanoramiXTranslateCoords(ClientPtr c
REQUEST_SIZE_MATCH(xTranslateCoordsReq);
pWin = (WindowPtr)SecurityLookupWindow(stuff->srcWid, client,
- SecurityReadAccess);
+ DixReadAccess);
if (!pWin)
return(BadWindow);
pDst = (WindowPtr)SecurityLookupWindow(stuff->dstWid, client,
- SecurityReadAccess);
+ DixReadAccess);
if (!pDst)
return(BadWindow);
rep.type = X_Reply;
@@ -655,7 +655,7 @@ int PanoramiXCreatePixmap(ClientPtr clie
client->errorValue = stuff->pid;
if(!(refDraw = (PanoramiXRes *)SecurityLookupIDByClass(
- client, stuff->drawable, XRC_DRAWABLE, SecurityReadAccess)))
+ client, stuff->drawable, XRC_DRAWABLE, DixReadAccess)))
return BadDrawable;
if(!(newPix = (PanoramiXRes *) xalloc(sizeof(PanoramiXRes))))
@@ -694,7 +694,7 @@ int PanoramiXFreePixmap(ClientPtr client
client->errorValue = stuff->id;
if(!(pix = (PanoramiXRes *)SecurityLookupIDByType(
- client, stuff->id, XRT_PIXMAP, SecurityDestroyAccess)))
+ client, stuff->id, XRT_PIXMAP, DixDestroyAccess)))
return BadPixmap;
FOR_NSCREENS_BACKWARD(j) {
@@ -730,14 +730,14 @@ int PanoramiXCreateGC(ClientPtr client)
return BadLength;
if (!(refDraw = (PanoramiXRes *)SecurityLookupIDByClass(
- client, stuff->drawable, XRC_DRAWABLE, SecurityReadAccess)))
+ client, stuff->drawable, XRC_DRAWABLE, DixReadAccess)))
return BadDrawable;
if ((Mask)stuff->mask & GCTile) {
tile_offset = Ones((Mask)stuff->mask & (GCTile - 1));
if ((tmp = *((CARD32 *) &stuff[1] + tile_offset))) {
if(!(tile = (PanoramiXRes*) SecurityLookupIDByType(
- client, tmp, XRT_PIXMAP, SecurityReadAccess)))
+ client, tmp, XRT_PIXMAP, DixReadAccess)))
return BadPixmap;
}
}
@@ -745,7 +745,7 @@ int PanoramiXCreateGC(ClientPtr client)
stip_offset = Ones((Mask)stuff->mask & (GCStipple - 1));
if ((tmp = *((CARD32 *) &stuff[1] + stip_offset))) {
if(!(stip = (PanoramiXRes*) SecurityLookupIDByType(
- client, tmp, XRT_PIXMAP, SecurityReadAccess)))
+ client, tmp, XRT_PIXMAP, DixReadAccess)))
return BadPixmap;
}
}
@@ -753,7 +753,7 @@ int PanoramiXCreateGC(ClientPtr client)
clip_offset = Ones((Mask)stuff->mask & (GCClipMask - 1));
if ((tmp = *((CARD32 *) &stuff[1] + clip_offset))) {
if(!(clip = (PanoramiXRes*) SecurityLookupIDByType(
- client, tmp, XRT_PIXMAP, SecurityReadAccess)))
+ client, tmp, XRT_PIXMAP, DixReadAccess)))
return BadPixmap;
}
}
@@ -805,14 +805,14 @@ int PanoramiXChangeGC(ClientPtr client)
return BadLength;
if (!(gc = (PanoramiXRes *)SecurityLookupIDByType(
- client, stuff->gc, XRT_GC, SecurityReadAccess)))
+ client, stuff->gc, XRT_GC, DixReadAccess)))
return BadGC;
if ((Mask)stuff->mask & GCTile) {
tile_offset = Ones((Mask)stuff->mask & (GCTile - 1));
if ((tmp = *((CARD32 *) &stuff[1] + tile_offset))) {
if(!(tile = (PanoramiXRes*) SecurityLookupIDByType(
- client, tmp, XRT_PIXMAP, SecurityReadAccess)))
+ client, tmp, XRT_PIXMAP, DixReadAccess)))
return BadPixmap;
}
}
@@ -820,7 +820,7 @@ int PanoramiXChangeGC(ClientPtr client)
stip_offset = Ones((Mask)stuff->mask & (GCStipple - 1));
if ((tmp = *((CARD32 *) &stuff[1] + stip_offset))) {
if(!(stip = (PanoramiXRes*) SecurityLookupIDByType(
- client, tmp, XRT_PIXMAP, SecurityReadAccess)))
+ client, tmp, XRT_PIXMAP, DixReadAccess)))
return BadPixmap;
}
}
@@ -828,7 +828,7 @@ int PanoramiXChangeGC(ClientPtr client)
clip_offset = Ones((Mask)stuff->mask & (GCClipMask - 1));
if ((tmp = *((CARD32 *) &stuff[1] + clip_offset))) {
if(!(clip = (PanoramiXRes*) SecurityLookupIDByType(
- client, tmp, XRT_PIXMAP, SecurityReadAccess)))
+ client, tmp, XRT_PIXMAP, DixReadAccess)))
return BadPixmap;
}
}
@@ -859,11 +859,11 @@ int PanoramiXCopyGC(ClientPtr client)
REQUEST_SIZE_MATCH(xCopyGCReq);
if(!(srcGC = (PanoramiXRes *)SecurityLookupIDByType(
- client, stuff->srcGC, XRT_GC, SecurityReadAccess)))
+ client, stuff->srcGC, XRT_GC, DixReadAccess)))
return BadGC;
if(!(dstGC = (PanoramiXRes *)SecurityLookupIDByType(
- client, stuff->dstGC, XRT_GC, SecurityWriteAccess)))
+ client, stuff->dstGC, XRT_GC, DixWriteAccess)))
return BadGC;
FOR_NSCREENS(j) {
@@ -886,7 +886,7 @@ int PanoramiXSetDashes(ClientPtr client)
REQUEST_FIXED_SIZE(xSetDashesReq, stuff->nDashes);
if(!(gc = (PanoramiXRes *)SecurityLookupIDByType(
- client, stuff->gc, XRT_GC, SecurityWriteAccess)))
+ client, stuff->gc, XRT_GC, DixWriteAccess)))
return BadGC;
FOR_NSCREENS_BACKWARD(j) {
@@ -908,7 +908,7 @@ int PanoramiXSetClipRectangles(ClientPtr
REQUEST_AT_LEAST_SIZE(xSetClipRectanglesReq);
if(!(gc = (PanoramiXRes *)SecurityLookupIDByType(
- client, stuff->gc, XRT_GC, SecurityWriteAccess)))
+ client, stuff->gc, XRT_GC, DixWriteAccess)))
return BadGC;
FOR_NSCREENS_BACKWARD(j) {
@@ -930,7 +930,7 @@ int PanoramiXFreeGC(ClientPtr client)
REQUEST_SIZE_MATCH(xResourceReq);
if(!(gc = (PanoramiXRes *)SecurityLookupIDByType(
- client, stuff->id, XRT_GC, SecurityDestroyAccess)))
+ client, stuff->id, XRT_GC, DixDestroyAccess)))
return BadGC;
FOR_NSCREENS_BACKWARD(j) {
@@ -956,7 +956,7 @@ int PanoramiXClearToBackground(ClientPtr
REQUEST_SIZE_MATCH(xClearAreaReq);
if(!(win = (PanoramiXRes *)SecurityLookupIDByType(
- client, stuff->window, XRT_WINDOW, SecurityWriteAccess)))
+ client, stuff->window, XRT_WINDOW, DixWriteAccess)))
return BadWindow;
x = stuff->x;
@@ -998,13 +998,13 @@ int PanoramiXCopyArea(ClientPtr client)
REQUEST_SIZE_MATCH(xCopyAreaReq);
if(!(src = (PanoramiXRes *)SecurityLookupIDByClass(
- client, stuff->srcDrawable, XRC_DRAWABLE, SecurityReadAccess)))
+ client, stuff->srcDrawable, XRC_DRAWABLE, DixReadAccess)))
return BadDrawable;
srcShared = IS_SHARED_PIXMAP(src);
if(!(dst = (PanoramiXRes *)SecurityLookupIDByClass(
- client, stuff->dstDrawable, XRC_DRAWABLE, SecurityWriteAccess)))
+ client, stuff->dstDrawable, XRC_DRAWABLE, DixWriteAccess)))
return BadDrawable;
dstShared = IS_SHARED_PIXMAP(dst);
@@ -1013,7 +1013,7 @@ int PanoramiXCopyArea(ClientPtr client)
return (* SavedProcVector[X_CopyArea])(client);
if(!(gc = (PanoramiXRes *)SecurityLookupIDByType(
- client, stuff->gc, XRT_GC, SecurityReadAccess)))
+ client, stuff->gc, XRT_GC, DixReadAccess)))
return BadGC;
if((dst->type == XRT_WINDOW) && dst->u.win.root)
@@ -1082,7 +1082,7 @@ int PanoramiXCopyArea(ClientPtr client)
VALIDATE_DRAWABLE_AND_GC(stuff->dstDrawable, pDst, pGC, client);
if (stuff->dstDrawable != stuff->srcDrawable) {
SECURITY_VERIFY_DRAWABLE(pSrc, stuff->srcDrawable, client,
- SecurityReadAccess);
+ DixReadAccess);
if ((pDst->pScreen != pSrc->pScreen) ||
(pDst->depth != pSrc->depth)) {
client->errorValue = stuff->dstDrawable;
@@ -1146,13 +1146,13 @@ int PanoramiXCopyPlane(ClientPtr client)
REQUEST_SIZE_MATCH(xCopyPlaneReq);
if(!(src = (PanoramiXRes *)SecurityLookupIDByClass(
- client, stuff->srcDrawable, XRC_DRAWABLE, SecurityReadAccess)))
+ client, stuff->srcDrawable, XRC_DRAWABLE, DixReadAccess)))
return BadDrawable;
srcShared = IS_SHARED_PIXMAP(src);
if(!(dst = (PanoramiXRes *)SecurityLookupIDByClass(
- client, stuff->dstDrawable, XRC_DRAWABLE, SecurityWriteAccess)))
+ client, stuff->dstDrawable, XRC_DRAWABLE, DixWriteAccess)))
return BadDrawable;
dstShared = IS_SHARED_PIXMAP(dst);
@@ -1161,7 +1161,7 @@ int PanoramiXCopyPlane(ClientPtr client)
return (* SavedProcVector[X_CopyPlane])(client);
if(!(gc = (PanoramiXRes *)SecurityLookupIDByType(
- client, stuff->gc, XRT_GC, SecurityReadAccess)))
+ client, stuff->gc, XRT_GC, DixReadAccess)))
return BadGC;
if((dst->type == XRT_WINDOW) && dst->u.win.root)
@@ -1188,7 +1188,7 @@ int PanoramiXCopyPlane(ClientPtr client)
VALIDATE_DRAWABLE_AND_GC(stuff->dstDrawable, pdstDraw, pGC, client);
if (stuff->dstDrawable != stuff->srcDrawable) {
SECURITY_VERIFY_DRAWABLE(psrcDraw, stuff->srcDrawable, client,
- SecurityReadAccess);
+ DixReadAccess);
if (pdstDraw->pScreen != psrcDraw->pScreen) {
client->errorValue = stuff->dstDrawable;
return (BadMatch);
@@ -1246,14 +1246,14 @@ int PanoramiXPolyPoint(ClientPtr client)
REQUEST_AT_LEAST_SIZE(xPolyPointReq);
if(!(draw = (PanoramiXRes *)SecurityLookupIDByClass(
- client, stuff->drawable, XRC_DRAWABLE, SecurityWriteAccess)))
+ client, stuff->drawable, XRC_DRAWABLE, DixWriteAccess)))
return BadDrawable;
if(IS_SHARED_PIXMAP(draw))
return (*SavedProcVector[X_PolyPoint])(client);
if(!(gc = (PanoramiXRes *)SecurityLookupIDByType(
- client, stuff->gc, XRT_GC, SecurityReadAccess)))
+ client, stuff->gc, XRT_GC, DixReadAccess)))
return BadGC;
isRoot = (draw->type == XRT_WINDOW) && draw->u.win.root;
@@ -1304,14 +1304,14 @@ int PanoramiXPolyLine(ClientPtr client)
REQUEST_AT_LEAST_SIZE(xPolyLineReq);
if(!(draw = (PanoramiXRes *)SecurityLookupIDByClass(
- client, stuff->drawable, XRC_DRAWABLE, SecurityWriteAccess)))
+ client, stuff->drawable, XRC_DRAWABLE, DixWriteAccess)))
return BadDrawable;
if(IS_SHARED_PIXMAP(draw))
return (*SavedProcVector[X_PolyLine])(client);
if(!(gc = (PanoramiXRes *)SecurityLookupIDByType(
- client, stuff->gc, XRT_GC, SecurityReadAccess)))
+ client, stuff->gc, XRT_GC, DixReadAccess)))
return BadGC;
isRoot = (draw->type == XRT_WINDOW) && draw->u.win.root;
@@ -1362,14 +1362,14 @@ int PanoramiXPolySegment(ClientPtr clien
REQUEST_AT_LEAST_SIZE(xPolySegmentReq);
if(!(draw = (PanoramiXRes *)SecurityLookupIDByClass(
- client, stuff->drawable, XRC_DRAWABLE, SecurityWriteAccess)))
+ client, stuff->drawable, XRC_DRAWABLE, DixWriteAccess)))
return BadDrawable;
if(IS_SHARED_PIXMAP(draw))
return (*SavedProcVector[X_PolySegment])(client);
if(!(gc = (PanoramiXRes *)SecurityLookupIDByType(
- client, stuff->gc, XRT_GC, SecurityReadAccess)))
+ client, stuff->gc, XRT_GC, DixReadAccess)))
return BadGC;
isRoot = (draw->type == XRT_WINDOW) && draw->u.win.root;
@@ -1424,14 +1424,14 @@ int PanoramiXPolyRectangle(ClientPtr cli
if(!(draw = (PanoramiXRes *)SecurityLookupIDByClass(
- client, stuff->drawable, XRC_DRAWABLE, SecurityWriteAccess)))
+ client, stuff->drawable, XRC_DRAWABLE, DixWriteAccess)))
return BadDrawable;
if(IS_SHARED_PIXMAP(draw))
return (*SavedProcVector[X_PolyRectangle])(client);
if(!(gc = (PanoramiXRes *)SecurityLookupIDByType(
- client, stuff->gc, XRT_GC, SecurityReadAccess)))
+ client, stuff->gc, XRT_GC, DixReadAccess)))
return BadGC;
isRoot = (draw->type == XRT_WINDOW) && draw->u.win.root;
@@ -1484,14 +1484,14 @@ int PanoramiXPolyArc(ClientPtr client)
REQUEST_AT_LEAST_SIZE(xPolyArcReq);
if(!(draw = (PanoramiXRes *)SecurityLookupIDByClass(
- client, stuff->drawable, XRC_DRAWABLE, SecurityWriteAccess)))
+ client, stuff->drawable, XRC_DRAWABLE, DixWriteAccess)))
return BadDrawable;
if(IS_SHARED_PIXMAP(draw))
return (*SavedProcVector[X_PolyArc])(client);
if(!(gc = (PanoramiXRes *)SecurityLookupIDByType(
- client, stuff->gc, XRT_GC, SecurityReadAccess)))
+ client, stuff->gc, XRT_GC, DixReadAccess)))
return BadGC;
isRoot = (draw->type == XRT_WINDOW) && draw->u.win.root;
@@ -1542,14 +1542,14 @@ int PanoramiXFillPoly(ClientPtr client)
REQUEST_AT_LEAST_SIZE(xFillPolyReq);
if(!(draw = (PanoramiXRes *)SecurityLookupIDByClass(
- client, stuff->drawable, XRC_DRAWABLE, SecurityWriteAccess)))
+ client, stuff->drawable, XRC_DRAWABLE, DixWriteAccess)))
return BadDrawable;
if(IS_SHARED_PIXMAP(draw))
return (*SavedProcVector[X_FillPoly])(client);
if(!(gc = (PanoramiXRes *)SecurityLookupIDByType(
- client, stuff->gc, XRT_GC, SecurityReadAccess)))
+ client, stuff->gc, XRT_GC, DixReadAccess)))
return BadGC;
isRoot = (draw->type == XRT_WINDOW) && draw->u.win.root;
@@ -1601,14 +1601,14 @@ int PanoramiXPolyFillRectangle(ClientPtr
REQUEST_AT_LEAST_SIZE(xPolyFillRectangleReq);
if(!(draw = (PanoramiXRes *)SecurityLookupIDByClass(
- client, stuff->drawable, XRC_DRAWABLE, SecurityWriteAccess)))
+ client, stuff->drawable, XRC_DRAWABLE, DixWriteAccess)))
return BadDrawable;
if(IS_SHARED_PIXMAP(draw))
return (*SavedProcVector[X_PolyFillRectangle])(client);
if(!(gc = (PanoramiXRes *)SecurityLookupIDByType(
- client, stuff->gc, XRT_GC, SecurityReadAccess)))
+ client, stuff->gc, XRT_GC, DixReadAccess)))
return BadGC;
isRoot = (draw->type == XRT_WINDOW) && draw->u.win.root;
@@ -1660,14 +1660,14 @@ int PanoramiXPolyFillArc(ClientPtr clien
REQUEST_AT_LEAST_SIZE(xPolyFillArcReq);
if(!(draw = (PanoramiXRes *)SecurityLookupIDByClass(
- client, stuff->drawable, XRC_DRAWABLE, SecurityWriteAccess)))
+ client, stuff->drawable, XRC_DRAWABLE, DixWriteAccess)))
return BadDrawable;
if(IS_SHARED_PIXMAP(draw))
return (*SavedProcVector[X_PolyFillArc])(client);
if(!(gc = (PanoramiXRes *)SecurityLookupIDByType(
- client, stuff->gc, XRT_GC, SecurityReadAccess)))
+ client, stuff->gc, XRT_GC, DixReadAccess)))
return BadGC;
isRoot = (draw->type == XRT_WINDOW) && draw->u.win.root;
@@ -1718,14 +1718,14 @@ int PanoramiXPutImage(ClientPtr client)
REQUEST_AT_LEAST_SIZE(xPutImageReq);
if(!(draw = (PanoramiXRes *)SecurityLookupIDByClass(
- client, stuff->drawable, XRC_DRAWABLE, SecurityWriteAccess)))
+ client, stuff->drawable, XRC_DRAWABLE, DixWriteAccess)))
return BadDrawable;
if(IS_SHARED_PIXMAP(draw))
return (*SavedProcVector[X_PutImage])(client);
if(!(gc = (PanoramiXRes *)SecurityLookupIDByType(
- client, stuff->gc, XRT_GC, SecurityReadAccess)))
+ client, stuff->gc, XRT_GC, DixReadAccess)))
return BadGC;
isRoot = (draw->type == XRT_WINDOW) && draw->u.win.root;
@@ -1769,7 +1769,7 @@ int PanoramiXGetImage(ClientPtr client)
}
if(!(draw = (PanoramiXRes *)SecurityLookupIDByClass(
- client, stuff->drawable, XRC_DRAWABLE, SecurityWriteAccess)))
+ client, stuff->drawable, XRC_DRAWABLE, DixWriteAccess)))
return BadDrawable;
if(draw->type == XRT_PIXMAP)
@@ -1909,14 +1909,14 @@ PanoramiXPolyText8(ClientPtr client)
REQUEST_AT_LEAST_SIZE(xPolyTextReq);
if(!(draw = (PanoramiXRes *)SecurityLookupIDByClass(
- client, stuff->drawable, XRC_DRAWABLE, SecurityWriteAccess)))
+ client, stuff->drawable, XRC_DRAWABLE, DixWriteAccess)))
return BadDrawable;
if(IS_SHARED_PIXMAP(draw))
return (*SavedProcVector[X_PolyText8])(client);
if(!(gc = (PanoramiXRes *)SecurityLookupIDByType(
- client, stuff->gc, XRT_GC, SecurityReadAccess)))
+ client, stuff->gc, XRT_GC, DixReadAccess)))
return BadGC;
isRoot = (draw->type == XRT_WINDOW) && draw->u.win.root;
@@ -1948,14 +1948,14 @@ PanoramiXPolyText16(ClientPtr client)
REQUEST_AT_LEAST_SIZE(xPolyTextReq);
if(!(draw = (PanoramiXRes *)SecurityLookupIDByClass(
- client, stuff->drawable, XRC_DRAWABLE, SecurityWriteAccess)))
+ client, stuff->drawable, XRC_DRAWABLE, DixWriteAccess)))
return BadDrawable;
if(IS_SHARED_PIXMAP(draw))
return (*SavedProcVector[X_PolyText16])(client);
if(!(gc = (PanoramiXRes *)SecurityLookupIDByType(
- client, stuff->gc, XRT_GC, SecurityReadAccess)))
+ client, stuff->gc, XRT_GC, DixReadAccess)))
return BadGC;
isRoot = (draw->type == XRT_WINDOW) && draw->u.win.root;
@@ -1987,14 +1987,14 @@ int PanoramiXImageText8(ClientPtr client
REQUEST_FIXED_SIZE(xImageTextReq, stuff->nChars);
if(!(draw = (PanoramiXRes *)SecurityLookupIDByClass(
- client, stuff->drawable, XRC_DRAWABLE, SecurityWriteAccess)))
+ client, stuff->drawable, XRC_DRAWABLE, DixWriteAccess)))
return BadDrawable;
if(IS_SHARED_PIXMAP(draw))
return (*SavedProcVector[X_ImageText8])(client);
if(!(gc = (PanoramiXRes *)SecurityLookupIDByType(
- client, stuff->gc, XRT_GC, SecurityReadAccess)))
+ client, stuff->gc, XRT_GC, DixReadAccess)))
return BadGC;
isRoot = (draw->type == XRT_WINDOW) && draw->u.win.root;
@@ -2026,14 +2026,14 @@ int PanoramiXImageText16(ClientPtr clien
REQUEST_FIXED_SIZE(xImageTextReq, stuff->nChars << 1);
if(!(draw = (PanoramiXRes *)SecurityLookupIDByClass(
- client, stuff->drawable, XRC_DRAWABLE, SecurityWriteAccess)))
+ client, stuff->drawable, XRC_DRAWABLE, DixWriteAccess)))
return BadDrawable;
if(IS_SHARED_PIXMAP(draw))
return (*SavedProcVector[X_ImageText16])(client);
if(!(gc = (PanoramiXRes *)SecurityLookupIDByType(
- client, stuff->gc, XRT_GC, SecurityReadAccess)))
+ client, stuff->gc, XRT_GC, DixReadAccess)))
return BadGC;
isRoot = (draw->type == XRT_WINDOW) && draw->u.win.root;
@@ -2064,7 +2064,7 @@ int PanoramiXCreateColormap(ClientPtr cl
REQUEST_SIZE_MATCH(xCreateColormapReq);
if(!(win = (PanoramiXRes *)SecurityLookupIDByType(
- client, stuff->window, XRT_WINDOW, SecurityReadAccess)))
+ client, stuff->window, XRT_WINDOW, DixReadAccess)))
return BadWindow;
if(!stuff->visual || (stuff->visual > 255))
@@ -2107,7 +2107,7 @@ int PanoramiXFreeColormap(ClientPtr clie
client->errorValue = stuff->id;
if(!(cmap = (PanoramiXRes *)SecurityLookupIDByType(
- client, stuff->id, XRT_COLORMAP, SecurityDestroyAccess)))
+ client, stuff->id, XRT_COLORMAP, DixDestroyAccess)))
return BadColor;
FOR_NSCREENS_BACKWARD(j) {
@@ -2136,7 +2136,7 @@ PanoramiXCopyColormapAndFree(ClientPtr c
if(!(cmap = (PanoramiXRes *)SecurityLookupIDByType(
client, stuff->srcCmap, XRT_COLORMAP,
- SecurityReadAccess | SecurityWriteAccess)))
+ DixReadAccess | DixWriteAccess)))
return BadColor;
if(!(newCmap = (PanoramiXRes *) xalloc(sizeof(PanoramiXRes))))
@@ -2174,7 +2174,7 @@ int PanoramiXInstallColormap(ClientPtr c
client->errorValue = stuff->id;
if(!(cmap = (PanoramiXRes *)SecurityLookupIDByType(
- client, stuff->id, XRT_COLORMAP, SecurityReadAccess)))
+ client, stuff->id, XRT_COLORMAP, DixReadAccess)))
return BadColor;
FOR_NSCREENS_BACKWARD(j){
@@ -2197,7 +2197,7 @@ int PanoramiXUninstallColormap(ClientPtr
client->errorValue = stuff->id;
if(!(cmap = (PanoramiXRes *)SecurityLookupIDByType(
- client, stuff->id, XRT_COLORMAP, SecurityReadAccess)))
+ client, stuff->id, XRT_COLORMAP, DixReadAccess)))
return BadColor;
FOR_NSCREENS_BACKWARD(j) {
@@ -2220,7 +2220,7 @@ int PanoramiXAllocColor(ClientPtr client
client->errorValue = stuff->cmap;
if(!(cmap = (PanoramiXRes *)SecurityLookupIDByType(
- client, stuff->cmap, XRT_COLORMAP, SecurityWriteAccess)))
+ client, stuff->cmap, XRT_COLORMAP, DixWriteAccess)))
return BadColor;
FOR_NSCREENS_BACKWARD(j){
@@ -2243,7 +2243,7 @@ int PanoramiXAllocNamedColor(ClientPtr c
client->errorValue = stuff->cmap;
if(!(cmap = (PanoramiXRes *)SecurityLookupIDByType(
- client, stuff->cmap, XRT_COLORMAP, SecurityWriteAccess)))
+ client, stuff->cmap, XRT_COLORMAP, DixWriteAccess)))
return BadColor;
FOR_NSCREENS_BACKWARD(j){
@@ -2266,7 +2266,7 @@ int PanoramiXAllocColorCells(ClientPtr c
client->errorValue = stuff->cmap;
if(!(cmap = (PanoramiXRes *)SecurityLookupIDByType(
- client, stuff->cmap, XRT_COLORMAP, SecurityWriteAccess)))
+ client, stuff->cmap, XRT_COLORMAP, DixWriteAccess)))
return BadColor;
FOR_NSCREENS_BACKWARD(j){
@@ -2289,7 +2289,7 @@ int PanoramiXAllocColorPlanes(ClientPtr
client->errorValue = stuff->cmap;
if(!(cmap = (PanoramiXRes *)SecurityLookupIDByType(
- client, stuff->cmap, XRT_COLORMAP, SecurityWriteAccess)))
+ client, stuff->cmap, XRT_COLORMAP, DixWriteAccess)))
return BadColor;
FOR_NSCREENS_BACKWARD(j){
@@ -2313,7 +2313,7 @@ int PanoramiXFreeColors(ClientPtr client
client->errorValue = stuff->cmap;
if(!(cmap = (PanoramiXRes *)SecurityLookupIDByType(
- client, stuff->cmap, XRT_COLORMAP, SecurityWriteAccess)))
+ client, stuff->cmap, XRT_COLORMAP, DixWriteAccess)))
return BadColor;
FOR_NSCREENS_BACKWARD(j) {
@@ -2335,7 +2335,7 @@ int PanoramiXStoreColors(ClientPtr clien
client->errorValue = stuff->cmap;
if(!(cmap = (PanoramiXRes *)SecurityLookupIDByType(
- client, stuff->cmap, XRT_COLORMAP, SecurityWriteAccess)))
+ client, stuff->cmap, XRT_COLORMAP, DixWriteAccess)))
return BadColor;
FOR_NSCREENS_BACKWARD(j){
@@ -2358,7 +2358,7 @@ int PanoramiXStoreNamedColor(ClientPtr c
client->errorValue = stuff->cmap;
if(!(cmap = (PanoramiXRes *)SecurityLookupIDByType(
- client, stuff->cmap, XRT_COLORMAP, SecurityWriteAccess)))
+ client, stuff->cmap, XRT_COLORMAP, DixWriteAccess)))
return BadColor;
FOR_NSCREENS_BACKWARD(j){
diff --git a/Xext/saver.c b/Xext/saver.c
index 1d223ae..d6b537a 100644
--- a/Xext/saver.c
+++ b/Xext/saver.c
@@ -1279,7 +1279,7 @@ ProcScreenSaverSetAttributes (ClientPtr
REQUEST_AT_LEAST_SIZE (xScreenSaverSetAttributesReq);
if(!(draw = (PanoramiXRes *)SecurityLookupIDByClass(
- client, stuff->drawable, XRC_DRAWABLE, SecurityWriteAccess)))
+ client, stuff->drawable, XRC_DRAWABLE, DixWriteAccess)))
return BadDrawable;
len = stuff->length - (sizeof(xScreenSaverSetAttributesReq) >> 2);
@@ -1291,7 +1291,7 @@ ProcScreenSaverSetAttributes (ClientPtr
tmp = *((CARD32 *) &stuff[1] + pback_offset);
if ((tmp != None) && (tmp != ParentRelative)) {
if(!(backPix = (PanoramiXRes*) SecurityLookupIDByType(
- client, tmp, XRT_PIXMAP, SecurityReadAccess)))
+ client, tmp, XRT_PIXMAP, DixReadAccess)))
return BadPixmap;
}
}
@@ -1301,7 +1301,7 @@ ProcScreenSaverSetAttributes (ClientPtr
tmp = *((CARD32 *) &stuff[1] + pbord_offset);
if (tmp != CopyFromParent) {
if(!(bordPix = (PanoramiXRes*) SecurityLookupIDByType(
- client, tmp, XRT_PIXMAP, SecurityReadAccess)))
+ client, tmp, XRT_PIXMAP, DixReadAccess)))
return BadPixmap;
}
}
@@ -1311,7 +1311,7 @@ ProcScreenSaverSetAttributes (ClientPtr
tmp = *((CARD32 *) &stuff[1] + cmap_offset);
if ((tmp != CopyFromParent) && (tmp != None)) {
if(!(cmap = (PanoramiXRes*) SecurityLookupIDByType(
- client, tmp, XRT_COLORMAP, SecurityReadAccess)))
+ client, tmp, XRT_COLORMAP, DixReadAccess)))
return BadColor;
}
}
@@ -1351,7 +1351,7 @@ ProcScreenSaverUnsetAttributes (ClientPt
int i;
if(!(draw = (PanoramiXRes *)SecurityLookupIDByClass(
- client, stuff->drawable, XRC_DRAWABLE, SecurityWriteAccess)))
+ client, stuff->drawable, XRC_DRAWABLE, DixWriteAccess)))
return BadDrawable;
for(i = PanoramiXNumScreens - 1; i > 0; i--) {
diff --git a/Xext/security.c b/Xext/security.c
index 572f811..4fbf6f2 100644
--- a/Xext/security.c
+++ b/Xext/security.c
@@ -600,7 +600,7 @@ ProcSecurityRevokeAuthorization(
REQUEST_SIZE_MATCH(xSecurityRevokeAuthorizationReq);
pAuth = (SecurityAuthorizationPtr)SecurityLookupIDByType(client,
- stuff->authId, SecurityAuthorizationResType, SecurityDestroyAccess);
+ stuff->authId, SecurityAuthorizationResType, DixDestroyAccess);
if (!pAuth)
return SecurityErrorBase + XSecurityBadAuthorization;
@@ -966,7 +966,7 @@ CALLBACK(SecurityCheckResourceIDAccess)
int cid, reqtype;
if (TRUSTLEVEL(client) == XSecurityClientTrusted ||
- SecurityUnknownAccess == access_mode)
+ DixUnknownAccess == access_mode)
return; /* for compatibility, we have to allow access */
cid = CLIENT_ID(id);
@@ -1217,7 +1217,7 @@ CALLBACK(SecurityCheckHostlistAccess)
if (TRUSTLEVEL(rec->client) != XSecurityClientTrusted)
{
rec->rval = FALSE;
- if (rec->access_mode == SecurityWriteAccess)
+ if (rec->access_mode == DixWriteAccess)
SecurityAudit("client %d attempted to change host access\n",
rec->client->index);
else
@@ -1798,11 +1798,11 @@ CALLBACK(SecurityCheckPropertyAccess)
* executed a continue, which will skip the follwing code.
*/
action = XaceAllowOperation;
- if (access_mode & SecurityReadAccess)
+ if (access_mode & DixReadAccess)
action = max(action, pacl->readAction);
- if (access_mode & SecurityWriteAccess)
+ if (access_mode & DixWriteAccess)
action = max(action, pacl->writeAction);
- if (access_mode & SecurityDestroyAccess)
+ if (access_mode & DixDestroyAccess)
action = max(action, pacl->destroyAction);
break;
} /* end for each pacl */
diff --git a/Xext/shape.c b/Xext/shape.c
index 4d9d3fb..4a798da 100644
--- a/Xext/shape.c
+++ b/Xext/shape.c
@@ -390,7 +390,7 @@ ProcPanoramiXShapeRectangles(
REQUEST_AT_LEAST_SIZE (xShapeRectanglesReq);
if(!(win = (PanoramiXRes *)SecurityLookupIDByType(
- client, stuff->dest, XRT_WINDOW, SecurityWriteAccess)))
+ client, stuff->dest, XRT_WINDOW, DixWriteAccess)))
return BadWindow;
FOR_NSCREENS(j) {
@@ -422,7 +422,7 @@ ProcShapeMask (client)
REQUEST_SIZE_MATCH (xShapeMaskReq);
UpdateCurrentTime();
- pWin = SecurityLookupWindow (stuff->dest, client, SecurityWriteAccess);
+ pWin = SecurityLookupWindow (stuff->dest, client, DixWriteAccess);
if (!pWin)
return BadWindow;
switch (stuff->destKind) {
@@ -444,7 +444,7 @@ ProcShapeMask (client)
srcRgn = 0;
else {
pPixmap = (PixmapPtr) SecurityLookupIDByType(client, stuff->src,
- RT_PIXMAP, SecurityReadAccess);
+ RT_PIXMAP, DixReadAccess);
if (!pPixmap)
return BadPixmap;
if (pPixmap->drawable.pScreen != pScreen ||
@@ -488,12 +488,12 @@ ProcPanoramiXShapeMask(
REQUEST_SIZE_MATCH (xShapeMaskReq);
if(!(win = (PanoramiXRes *)SecurityLookupIDByType(
- client, stuff->dest, XRT_WINDOW, SecurityWriteAccess)))
+ client, stuff->dest, XRT_WINDOW, DixWriteAccess)))
return BadWindow;
if(stuff->src != None) {
if(!(pmap = (PanoramiXRes *)SecurityLookupIDByType(
- client, stuff->src, XRT_PIXMAP, SecurityReadAccess)))
+ client, stuff->src, XRT_PIXMAP, DixReadAccess)))
return BadPixmap;
} else
pmap = NULL;
@@ -616,11 +616,11 @@ ProcPanoramiXShapeCombine(
REQUEST_AT_LEAST_SIZE (xShapeCombineReq);
if(!(win = (PanoramiXRes *)SecurityLookupIDByType(
- client, stuff->dest, XRT_WINDOW, SecurityWriteAccess)))
+ client, stuff->dest, XRT_WINDOW, DixWriteAccess)))
return BadWindow;
if(!(win2 = (PanoramiXRes *)SecurityLookupIDByType(
- client, stuff->src, XRT_WINDOW, SecurityReadAccess)))
+ client, stuff->src, XRT_WINDOW, DixReadAccess)))
return BadWindow;
FOR_NSCREENS(j) {
@@ -688,7 +688,7 @@ ProcPanoramiXShapeOffset(
REQUEST_AT_LEAST_SIZE (xShapeOffsetReq);
if(!(win = (PanoramiXRes *)SecurityLookupIDByType(
- client, stuff->dest, XRT_WINDOW, SecurityWriteAccess)))
+ client, stuff->dest, XRT_WINDOW, DixWriteAccess)))
return BadWindow;
FOR_NSCREENS(j) {
@@ -822,11 +822,11 @@ ProcShapeSelectInput (client)
XID clientResource;
REQUEST_SIZE_MATCH (xShapeSelectInputReq);
- pWin = SecurityLookupWindow (stuff->window, client, SecurityWriteAccess);
+ pWin = SecurityLookupWindow (stuff->window, client, DixWriteAccess);
if (!pWin)
return BadWindow;
pHead = (ShapeEventPtr *)SecurityLookupIDByType(client,
- pWin->drawable.id, EventType, SecurityWriteAccess);
+ pWin->drawable.id, EventType, DixWriteAccess);
switch (stuff->enable) {
case xTrue:
if (pHead) {
@@ -999,7 +999,7 @@ ProcShapeInputSelected (client)
if (!pWin)
return BadWindow;
pHead = (ShapeEventPtr *) SecurityLookupIDByType(client,
- pWin->drawable.id, EventType, SecurityReadAccess);
+ pWin->drawable.id, EventType, DixReadAccess);
enabled = xFalse;
if (pHead) {
for (pShapeEvent = *pHead;
diff --git a/Xext/shm.c b/Xext/shm.c
index be79862..0c2299a 100644
--- a/Xext/shm.c
+++ b/Xext/shm.c
@@ -571,11 +571,11 @@ ProcPanoramiXShmPutImage(register Client
REQUEST_SIZE_MATCH(xShmPutImageReq);
if(!(draw = (PanoramiXRes *)SecurityLookupIDByClass(
- client, stuff->drawable, XRC_DRAWABLE, SecurityWriteAccess)))
+ client, stuff->drawable, XRC_DRAWABLE, DixWriteAccess)))
return BadDrawable;
if(!(gc = (PanoramiXRes *)SecurityLookupIDByType(
- client, stuff->gc, XRT_GC, SecurityReadAccess)))
+ client, stuff->gc, XRT_GC, DixReadAccess)))
return BadGC;
isRoot = (draw->type == XRT_WINDOW) && draw->u.win.root;
@@ -621,7 +621,7 @@ ProcPanoramiXShmGetImage(ClientPtr clien
}
if(!(draw = (PanoramiXRes *)SecurityLookupIDByClass(
- client, stuff->drawable, XRC_DRAWABLE, SecurityWriteAccess)))
+ client, stuff->drawable, XRC_DRAWABLE, DixWriteAccess)))
return BadDrawable;
if (draw->type == XRT_PIXMAP)
diff --git a/Xext/sync.c b/Xext/sync.c
index 7def85b..1d89934 100644
--- a/Xext/sync.c
+++ b/Xext/sync.c
@@ -436,7 +436,7 @@ SyncInitTrigger(client, pTrigger, counte
if (counter == None)
pCounter = NULL;
else if (!(pCounter = (SyncCounter *)SecurityLookupIDByType(
- client, counter, RTCounter, SecurityReadAccess)))
+ client, counter, RTCounter, DixReadAccess)))
{
client->errorValue = counter;
return SyncErrorBase + XSyncBadCounter;
@@ -1550,7 +1550,7 @@ ProcSyncSetCounter(client)
REQUEST_SIZE_MATCH(xSyncSetCounterReq);
pCounter = (SyncCounter *)SecurityLookupIDByType(client, stuff->cid,
- RTCounter, SecurityWriteAccess);
+ RTCounter, DixWriteAccess);
if (pCounter == NULL)
{
client->errorValue = stuff->cid;
@@ -1583,7 +1583,7 @@ ProcSyncChangeCounter(client)
REQUEST_SIZE_MATCH(xSyncChangeCounterReq);
pCounter = (SyncCounter *) SecurityLookupIDByType(client, stuff->cid,
- RTCounter, SecurityWriteAccess);
+ RTCounter, DixWriteAccess);
if (pCounter == NULL)
{
client->errorValue = stuff->cid;
@@ -1621,7 +1621,7 @@ ProcSyncDestroyCounter(client)
REQUEST_SIZE_MATCH(xSyncDestroyCounterReq);
pCounter = (SyncCounter *)SecurityLookupIDByType(client, stuff->counter,
- RTCounter, SecurityDestroyAccess);
+ RTCounter, DixDestroyAccess);
if (pCounter == NULL)
{
client->errorValue = stuff->counter;
@@ -1767,7 +1767,7 @@ ProcSyncQueryCounter(client)
REQUEST_SIZE_MATCH(xSyncQueryCounterReq);
pCounter = (SyncCounter *)SecurityLookupIDByType(client, stuff->counter,
- RTCounter, SecurityReadAccess);
+ RTCounter, DixReadAccess);
if (pCounter == NULL)
{
client->errorValue = stuff->counter;
@@ -1896,7 +1896,7 @@ ProcSyncChangeAlarm(client)
REQUEST_AT_LEAST_SIZE(xSyncChangeAlarmReq);
if (!(pAlarm = (SyncAlarm *)SecurityLookupIDByType(client, stuff->alarm,
- RTAlarm, SecurityWriteAccess)))
+ RTAlarm, DixWriteAccess)))
{
client->errorValue = stuff->alarm;
return SyncErrorBase + XSyncBadAlarm;
@@ -1937,7 +1937,7 @@ ProcSyncQueryAlarm(client)
REQUEST_SIZE_MATCH(xSyncQueryAlarmReq);
pAlarm = (SyncAlarm *)SecurityLookupIDByType(client, stuff->alarm,
- RTAlarm, SecurityReadAccess);
+ RTAlarm, DixReadAccess);
if (!pAlarm)
{
client->errorValue = stuff->alarm;
@@ -1997,7 +1997,7 @@ ProcSyncDestroyAlarm(client)
REQUEST_SIZE_MATCH(xSyncDestroyAlarmReq);
if (!((SyncAlarm *)SecurityLookupIDByType(client, stuff->alarm,
- RTAlarm, SecurityDestroyAccess)))
+ RTAlarm, DixDestroyAccess)))
{
client->errorValue = stuff->alarm;
return SyncErrorBase + XSyncBadAlarm;
diff --git a/Xext/xf86bigfont.c b/Xext/xf86bigfont.c
index bd25056..4464706 100644
--- a/Xext/xf86bigfont.c
+++ b/Xext/xf86bigfont.c
@@ -445,11 +445,11 @@ ProcXF86BigfontQueryFont(
#endif
client->errorValue = stuff->id; /* EITHER font or gc */
pFont = (FontPtr)SecurityLookupIDByType(client, stuff->id, RT_FONT,
- SecurityReadAccess);
+ DixReadAccess);
if (!pFont) {
/* can't use VERIFY_GC because it might return BadGC */
GC *pGC = (GC *) SecurityLookupIDByType(client, stuff->id, RT_GC,
- SecurityReadAccess);
+ DixReadAccess);
if (!pGC) {
client->errorValue = stuff->id;
return BadFont; /* procotol spec says only error is BadFont */
diff --git a/Xext/xprint.c b/Xext/xprint.c
index 29d3262..669ad27 100644
--- a/Xext/xprint.c
+++ b/Xext/xprint.c
@@ -749,7 +749,7 @@ ProcXpGetPageDimensions(ClientPtr client
if((pContext =(XpContextPtr)SecurityLookupIDByType(client,
stuff->printContext,
RTcontext,
- SecurityReadAccess))
+ DixReadAccess))
== (XpContextPtr)NULL)
{
client->errorValue = stuff->printContext;
@@ -811,7 +811,7 @@ ProcXpSetImageResolution(ClientPtr clien
if((pContext =(XpContextPtr)SecurityLookupIDByType(client,
stuff->printContext,
RTcontext,
- SecurityWriteAccess))
+ DixWriteAccess))
== (XpContextPtr)NULL)
{
client->errorValue = stuff->printContext;
@@ -859,7 +859,7 @@ ProcXpGetImageResolution(ClientPtr clien
if((pContext =(XpContextPtr)SecurityLookupIDByType(client,
stuff->printContext,
RTcontext,
- SecurityReadAccess))
+ DixReadAccess))
== (XpContextPtr)NULL)
{
client->errorValue = stuff->printContext;
@@ -1068,7 +1068,7 @@ ProcXpSetContext(ClientPtr client)
if((pContext =(XpContextPtr)SecurityLookupIDByType(client,
stuff->printContext,
RTcontext,
- SecurityWriteAccess))
+ DixWriteAccess))
== (XpContextPtr)NULL)
{
client->errorValue = stuff->printContext;
@@ -1141,7 +1141,7 @@ ProcXpDestroyContext(ClientPtr client)
if((pContext =(XpContextPtr)SecurityLookupIDByType(client,
stuff->printContext,
RTcontext,
- SecurityDestroyAccess))
+ DixDestroyAccess))
== (XpContextPtr)NULL)
{
client->errorValue = stuff->printContext;
@@ -1167,7 +1167,7 @@ ProcXpGetContextScreen(ClientPtr client)
if((pContext =(XpContextPtr)SecurityLookupIDByType(client,
stuff->printContext,
RTcontext,
- SecurityReadAccess))
+ DixReadAccess))
== (XpContextPtr)NULL)
return XpErrorBase+XPBadContext;
@@ -1853,7 +1853,7 @@ ProcXpStartPage(ClientPtr client)
return XpErrorBase+XPBadSequence;
pWin = (WindowPtr)SecurityLookupWindow(stuff->window, client,
- SecurityWriteAccess);
+ DixWriteAccess);
if (!pWin || pWin->drawable.pScreen->myNum != pContext->screenNum)
return BadWindow;
@@ -1994,7 +1994,7 @@ ProcXpGetDocumentData(ClientPtr client)
if((pContext = (XpContextPtr)SecurityLookupIDByType(client,
stuff->printContext,
RTcontext,
- SecurityWriteAccess))
+ DixWriteAccess))
== (XpContextPtr)NULL)
{
client->errorValue = stuff->printContext;
@@ -2077,7 +2077,7 @@ ProcXpGetAttributes(ClientPtr client)
client,
stuff->printContext,
RTcontext,
- SecurityReadAccess))
+ DixReadAccess))
== (XpContextPtr)NULL)
{
client->errorValue = stuff->printContext;
@@ -2149,7 +2149,7 @@ ProcXpSetAttributes(ClientPtr client)
client,
stuff->printContext,
RTcontext,
- SecurityWriteAccess))
+ DixWriteAccess))
== (XpContextPtr)NULL)
{
client->errorValue = stuff->printContext;
@@ -2229,7 +2229,7 @@ ProcXpGetOneAttribute(ClientPtr client)
client,
stuff->printContext,
RTcontext,
- SecurityReadAccess))
+ DixReadAccess))
== (XpContextPtr)NULL)
{
client->errorValue = stuff->printContext;
@@ -2300,7 +2300,7 @@ ProcXpSelectInput(ClientPtr client)
if((pContext=(XpContextPtr)SecurityLookupIDByType(client,
stuff->printContext,
RTcontext,
- SecurityWriteAccess))
+ DixWriteAccess))
== (XpContextPtr)NULL)
{
client->errorValue = stuff->printContext;
@@ -2336,7 +2336,7 @@ ProcXpInputSelected(ClientPtr client)
if((pContext=(XpContextPtr)SecurityLookupIDByType(client,
stuff->printContext,
RTcontext,
- SecurityReadAccess))
+ DixReadAccess))
== (XpContextPtr)NULL)
{
client->errorValue = stuff->printContext;
diff --git a/Xext/xvdisp.c b/Xext/xvdisp.c
index 0c7a381..ec2b4f8 100644
--- a/Xext/xvdisp.c
+++ b/Xext/xvdisp.c
@@ -1877,11 +1877,11 @@ XineramaXvStopVideo(ClientPtr client)
REQUEST_SIZE_MATCH(xvStopVideoReq);
if(!(draw = (PanoramiXRes *)SecurityLookupIDByClass(
- client, stuff->drawable, XRC_DRAWABLE, SecurityWriteAccess)))
+ client, stuff->drawable, XRC_DRAWABLE, DixWriteAccess)))
return BadDrawable;
if(!(port = (PanoramiXRes *)SecurityLookupIDByType(
- client, stuff->port, XvXRTPort, SecurityReadAccess)))
+ client, stuff->port, XvXRTPort, DixReadAccess)))
return _XvBadPort;
FOR_NSCREENS_BACKWARD(i) {
@@ -1905,7 +1905,7 @@ XineramaXvSetPortAttribute(ClientPtr cli
REQUEST_SIZE_MATCH(xvSetPortAttributeReq);
if(!(port = (PanoramiXRes *)SecurityLookupIDByType(
- client, stuff->port, XvXRTPort, SecurityReadAccess)))
+ client, stuff->port, XvXRTPort, DixReadAccess)))
return _XvBadPort;
FOR_NSCREENS_BACKWARD(i) {
@@ -1931,15 +1931,15 @@ XineramaXvShmPutImage(ClientPtr client)
REQUEST_SIZE_MATCH(xvShmPutImageReq);
if(!(draw = (PanoramiXRes *)SecurityLookupIDByClass(
- client, stuff->drawable, XRC_DRAWABLE, SecurityWriteAccess)))
+ client, stuff->drawable, XRC_DRAWABLE, DixWriteAccess)))
return BadDrawable;
if(!(gc = (PanoramiXRes *)SecurityLookupIDByType(
- client, stuff->gc, XRT_GC, SecurityReadAccess)))
+ client, stuff->gc, XRT_GC, DixReadAccess)))
return BadGC;
if(!(port = (PanoramiXRes *)SecurityLookupIDByType(
- client, stuff->port, XvXRTPort, SecurityReadAccess)))
+ client, stuff->port, XvXRTPort, DixReadAccess)))
return _XvBadPort;
isRoot = (draw->type == XRT_WINDOW) && draw->u.win.root;
@@ -1978,15 +1978,15 @@ XineramaXvPutImage(ClientPtr client)
REQUEST_AT_LEAST_SIZE(xvPutImageReq);
if(!(draw = (PanoramiXRes *)SecurityLookupIDByClass(
- client, stuff->drawable, XRC_DRAWABLE, SecurityWriteAccess)))
+ client, stuff->drawable, XRC_DRAWABLE, DixWriteAccess)))
return BadDrawable;
if(!(gc = (PanoramiXRes *)SecurityLookupIDByType(
- client, stuff->gc, XRT_GC, SecurityReadAccess)))
+ client, stuff->gc, XRT_GC, DixReadAccess)))
return BadGC;
if(!(port = (PanoramiXRes *)SecurityLookupIDByType(
- client, stuff->port, XvXRTPort, SecurityReadAccess)))
+ client, stuff->port, XvXRTPort, DixReadAccess)))
return _XvBadPort;
isRoot = (draw->type == XRT_WINDOW) && draw->u.win.root;
@@ -2023,15 +2023,15 @@ XineramaXvPutVideo(ClientPtr client)
REQUEST_AT_LEAST_SIZE(xvPutVideoReq);
if(!(draw = (PanoramiXRes *)SecurityLookupIDByClass(
- client, stuff->drawable, XRC_DRAWABLE, SecurityWriteAccess)))
+ client, stuff->drawable, XRC_DRAWABLE, DixWriteAccess)))
return BadDrawable;
if(!(gc = (PanoramiXRes *)SecurityLookupIDByType(
- client, stuff->gc, XRT_GC, SecurityReadAccess)))
+ client, stuff->gc, XRT_GC, DixReadAccess)))
return BadGC;
if(!(port = (PanoramiXRes *)SecurityLookupIDByType(
- client, stuff->port, XvXRTPort, SecurityReadAccess)))
+ client, stuff->port, XvXRTPort, DixReadAccess)))
return _XvBadPort;
isRoot = (draw->type == XRT_WINDOW) && draw->u.win.root;
@@ -2068,15 +2068,15 @@ XineramaXvPutStill(ClientPtr client)
REQUEST_AT_LEAST_SIZE(xvPutImageReq);
if(!(draw = (PanoramiXRes *)SecurityLookupIDByClass(
- client, stuff->drawable, XRC_DRAWABLE, SecurityWriteAccess)))
+ client, stuff->drawable, XRC_DRAWABLE, DixWriteAccess)))
return BadDrawable;
if(!(gc = (PanoramiXRes *)SecurityLookupIDByType(
- client, stuff->gc, XRT_GC, SecurityReadAccess)))
+ client, stuff->gc, XRT_GC, DixReadAccess)))
return BadGC;
if(!(port = (PanoramiXRes *)SecurityLookupIDByType(
- client, stuff->port, XvXRTPort, SecurityReadAccess)))
+ client, stuff->port, XvXRTPort, DixReadAccess)))
return _XvBadPort;
isRoot = (draw->type == XRT_WINDOW) && draw->u.win.root;
diff --git a/damageext/damageext.c b/damageext/damageext.c
index 225f9ec..c8f28e9 100755
--- a/damageext/damageext.c
+++ b/damageext/damageext.c
@@ -179,7 +179,7 @@ ProcDamageCreate (ClientPtr client)
REQUEST_SIZE_MATCH(xDamageCreateReq);
LEGAL_NEW_RESOURCE(stuff->damage, client);
SECURITY_VERIFY_DRAWABLE (pDrawable, stuff->drawable, client,
- SecurityReadAccess);
+ DixReadAccess);
switch (stuff->level) {
case XDamageReportRawRectangles:
level = DamageReportRawRegion;
@@ -237,7 +237,7 @@ ProcDamageDestroy (ClientPtr client)
DamageExtPtr pDamageExt;
REQUEST_SIZE_MATCH(xDamageDestroyReq);
- VERIFY_DAMAGEEXT(pDamageExt, stuff->damage, client, SecurityWriteAccess);
+ VERIFY_DAMAGEEXT(pDamageExt, stuff->damage, client, DixWriteAccess);
FreeResource (stuff->damage, RT_NONE);
return (client->noClientException);
}
@@ -251,9 +251,9 @@ ProcDamageSubtract (ClientPtr client)
RegionPtr pParts;
REQUEST_SIZE_MATCH(xDamageSubtractReq);
- VERIFY_DAMAGEEXT(pDamageExt, stuff->damage, client, SecurityWriteAccess);
- VERIFY_REGION_OR_NONE(pRepair, stuff->repair, client, SecurityWriteAccess);
- VERIFY_REGION_OR_NONE(pParts, stuff->parts, client, SecurityWriteAccess);
+ VERIFY_DAMAGEEXT(pDamageExt, stuff->damage, client, DixWriteAccess);
+ VERIFY_REGION_OR_NONE(pRepair, stuff->repair, client, DixWriteAccess);
+ VERIFY_REGION_OR_NONE(pParts, stuff->parts, client, DixWriteAccess);
if (pDamageExt->level != DamageReportRawRegion)
{
diff --git a/dbe/dbe.c b/dbe/dbe.c
index 5b43dd1..649143c 100644
--- a/dbe/dbe.c
+++ b/dbe/dbe.c
@@ -406,7 +406,7 @@ ProcDbeAllocateBackBufferName(ClientPtr
/* The window must be valid. */
if (!(pWin = SecurityLookupWindow(stuff->window, client,
- SecurityWriteAccess)))
+ DixWriteAccess)))
{
return(BadWindow);
}
@@ -633,9 +633,9 @@ ProcDbeDeallocateBackBufferName(ClientPt
/* Buffer name must be valid */
if (!(pDbeWindowPriv = (DbeWindowPrivPtr)SecurityLookupIDByType(client,
- stuff->buffer, dbeWindowPrivResType, SecurityDestroyAccess)) ||
+ stuff->buffer, dbeWindowPrivResType, DixDestroyAccess)) ||
!(SecurityLookupIDByType(client, stuff->buffer, dbeDrawableResType,
- SecurityDestroyAccess)))
+ DixDestroyAccess)))
{
client->errorValue = stuff->buffer;
return(dbeErrorBase + DbeBadBuffer);
@@ -730,7 +730,7 @@ ProcDbeSwapBuffers(ClientPtr client)
/* Each window must be a valid window - BadWindow. */
if (!(pWin = SecurityLookupWindow(dbeSwapInfo[i].window, client,
- SecurityWriteAccess)))
+ DixWriteAccess)))
{
DEALLOCATE_LOCAL(swapInfo);
return(BadWindow);
@@ -890,7 +890,7 @@ ProcDbeGetVisualInfo(ClientPtr client)
for (i = 0; i < stuff->n; i++)
{
if (!(pDrawables[i] = (DrawablePtr)SecurityLookupDrawable(
- drawables[i], client, SecurityReadAccess)))
+ drawables[i], client, DixReadAccess)))
{
DEALLOCATE_LOCAL(pDrawables);
return(BadDrawable);
@@ -1047,7 +1047,7 @@ ProcDbeGetBackBufferAttributes(ClientPtr
REQUEST_SIZE_MATCH(xDbeGetBackBufferAttributesReq);
if (!(pDbeWindowPriv = (DbeWindowPrivPtr)SecurityLookupIDByType(client,
- stuff->buffer, dbeWindowPrivResType, SecurityReadAccess)))
+ stuff->buffer, dbeWindowPrivResType, DixReadAccess)))
{
rep.attributes = None;
}
diff --git a/dix/colormap.c b/dix/colormap.c
index b8f2f4a..a74cb39 100644
--- a/dix/colormap.c
+++ b/dix/colormap.c
@@ -903,7 +903,7 @@ AllocColor (ColormapPtr pmap,
{
ColormapPtr prootmap = (ColormapPtr)
SecurityLookupIDByType (clients[client], pmap->pScreen->defColormap,
- RT_COLORMAP, SecurityReadAccess);
+ RT_COLORMAP, DixReadAccess);
if (pmap->class == prootmap->class)
FindColorInRootCmap (prootmap, prootmap->red, entries, &rgb,
@@ -920,7 +920,7 @@ AllocColor (ColormapPtr pmap,
{
ColormapPtr prootmap = (ColormapPtr)
SecurityLookupIDByType (clients[client], pmap->pScreen->defColormap,
- RT_COLORMAP, SecurityReadAccess);
+ RT_COLORMAP, DixReadAccess);
if (pmap->class == prootmap->class)
{
diff --git a/dix/cursor.c b/dix/cursor.c
index b9ede1f..7071d83 100644
--- a/dix/cursor.c
+++ b/dix/cursor.c
@@ -262,9 +262,9 @@ AllocGlyphCursor(Font source, unsigned s
GlyphSharePtr pShare;
sourcefont = (FontPtr) SecurityLookupIDByType(client, source, RT_FONT,
- SecurityReadAccess);
+ DixReadAccess);
maskfont = (FontPtr) SecurityLookupIDByType(client, mask, RT_FONT,
- SecurityReadAccess);
+ DixReadAccess);
if (!sourcefont)
{
diff --git a/dix/dispatch.c b/dix/dispatch.c
index 0a761eb..a3de07f 100644
--- a/dix/dispatch.c
+++ b/dix/dispatch.c
@@ -563,7 +563,7 @@ ProcCreateWindow(ClientPtr client)
LEGAL_NEW_RESOURCE(stuff->wid, client);
if (!(pParent = (WindowPtr)SecurityLookupWindow(stuff->parent, client,
- SecurityWriteAccess)))
+ DixWriteAccess)))
return BadWindow;
len = client->req_len - (sizeof(xCreateWindowReq) >> 2);
if (Ones(stuff->mask) != len)
@@ -604,7 +604,7 @@ ProcChangeWindowAttributes(register Clie
REQUEST_AT_LEAST_SIZE(xChangeWindowAttributesReq);
pWin = (WindowPtr)SecurityLookupWindow(stuff->window, client,
- SecurityWriteAccess);
+ DixWriteAccess);
if (!pWin)
return(BadWindow);
len = client->req_len - (sizeof(xChangeWindowAttributesReq) >> 2);
@@ -629,7 +629,7 @@ ProcGetWindowAttributes(register ClientP
REQUEST_SIZE_MATCH(xResourceReq);
pWin = (WindowPtr)SecurityLookupWindow(stuff->id, client,
- SecurityReadAccess);
+ DixReadAccess);
if (!pWin)
return(BadWindow);
GetWindowAttributes(pWin, client, &wa);
@@ -645,7 +645,7 @@ ProcDestroyWindow(register ClientPtr cli
REQUEST_SIZE_MATCH(xResourceReq);
pWin = (WindowPtr)SecurityLookupWindow(stuff->id, client,
- SecurityDestroyAccess);
+ DixDestroyAccess);
if (!pWin)
return(BadWindow);
if (pWin->parent)
@@ -661,7 +661,7 @@ ProcDestroySubwindows(register ClientPtr
REQUEST_SIZE_MATCH(xResourceReq);
pWin = (WindowPtr)SecurityLookupWindow(stuff->id, client,
- SecurityDestroyAccess);
+ DixDestroyAccess);
if (!pWin)
return(BadWindow);
DestroySubwindows(pWin, client);
@@ -677,7 +677,7 @@ ProcChangeSaveSet(register ClientPtr cli
REQUEST_SIZE_MATCH(xChangeSaveSetReq);
pWin = (WindowPtr)SecurityLookupWindow(stuff->window, client,
- SecurityReadAccess);
+ DixReadAccess);
if (!pWin)
return(BadWindow);
if (client->clientAsMask == (CLIENT_BITS(pWin->drawable.id)))
@@ -706,11 +706,11 @@ ProcReparentWindow(register ClientPtr cl
REQUEST_SIZE_MATCH(xReparentWindowReq);
pWin = (WindowPtr)SecurityLookupWindow(stuff->window, client,
- SecurityWriteAccess);
+ DixWriteAccess);
if (!pWin)
return(BadWindow);
pParent = (WindowPtr)SecurityLookupWindow(stuff->parent, client,
- SecurityWriteAccess);
+ DixWriteAccess);
if (!pParent)
return(BadWindow);
if (SAME_SCREENS(pWin->drawable, pParent->drawable))
@@ -740,7 +740,7 @@ ProcMapWindow(register ClientPtr client)
REQUEST_SIZE_MATCH(xResourceReq);
pWin = (WindowPtr)SecurityLookupWindow(stuff->id, client,
- SecurityReadAccess);
+ DixReadAccess);
if (!pWin)
return(BadWindow);
MapWindow(pWin, client);
@@ -756,7 +756,7 @@ ProcMapSubwindows(register ClientPtr cli
REQUEST_SIZE_MATCH(xResourceReq);
pWin = (WindowPtr)SecurityLookupWindow( stuff->id, client,
- SecurityReadAccess);
+ DixReadAccess);
if (!pWin)
return(BadWindow);
MapSubwindows(pWin, client);
@@ -772,7 +772,7 @@ ProcUnmapWindow(register ClientPtr clien
REQUEST_SIZE_MATCH(xResourceReq);
pWin = (WindowPtr)SecurityLookupWindow( stuff->id, client,
- SecurityReadAccess);
+ DixReadAccess);
if (!pWin)
return(BadWindow);
UnmapWindow(pWin, FALSE);
@@ -788,7 +788,7 @@ ProcUnmapSubwindows(register ClientPtr c
REQUEST_SIZE_MATCH(xResourceReq);
pWin = (WindowPtr)SecurityLookupWindow( stuff->id, client,
- SecurityReadAccess);
+ DixReadAccess);
if (!pWin)
return(BadWindow);
UnmapSubwindows(pWin);
@@ -805,7 +805,7 @@ ProcConfigureWindow(register ClientPtr c
REQUEST_AT_LEAST_SIZE(xConfigureWindowReq);
pWin = (WindowPtr)SecurityLookupWindow( stuff->window, client,
- SecurityWriteAccess);
+ DixWriteAccess);
if (!pWin)
return(BadWindow);
len = client->req_len - (sizeof(xConfigureWindowReq) >> 2);
@@ -833,7 +833,7 @@ ProcCirculateWindow(register ClientPtr c
return BadValue;
}
pWin = (WindowPtr)SecurityLookupWindow(stuff->window, client,
- SecurityWriteAccess);
+ DixWriteAccess);
if (!pWin)
return(BadWindow);
CirculateWindow(pWin, (int)stuff->direction, client);
@@ -847,7 +847,7 @@ GetGeometry(register ClientPtr client, x
REQUEST(xResourceReq);
REQUEST_SIZE_MATCH(xResourceReq);
- SECURITY_VERIFY_GEOMETRABLE (pDraw, stuff->id, client, SecurityReadAccess);
+ SECURITY_VERIFY_GEOMETRABLE (pDraw, stuff->id, client, DixReadAccess);
rep->type = X_Reply;
rep->length = 0;
rep->sequenceNumber = client->sequence;
@@ -906,7 +906,7 @@ ProcQueryTree(register ClientPtr client)
REQUEST_SIZE_MATCH(xResourceReq);
pWin = (WindowPtr)SecurityLookupWindow(stuff->id, client,
- SecurityReadAccess);
+ DixReadAccess);
if (!pWin)
return(BadWindow);
reply.type = X_Reply;
@@ -1022,7 +1022,7 @@ ProcSetSelectionOwner(register ClientPtr
if (stuff->window != None)
{
pWin = (WindowPtr)SecurityLookupWindow(stuff->window, client,
- SecurityReadAccess);
+ DixReadAccess);
if (!pWin)
return(BadWindow);
}
@@ -1141,7 +1141,7 @@ ProcConvertSelection(register ClientPtr
REQUEST_SIZE_MATCH(xConvertSelectionReq);
pWin = (WindowPtr)SecurityLookupWindow(stuff->requestor, client,
- SecurityReadAccess);
+ DixReadAccess);
if (!pWin)
return(BadWindow);
@@ -1159,7 +1159,7 @@ ProcConvertSelection(register ClientPtr
(CurrentSelections[i].window != None) &&
XaceHook(XACE_RESOURCE_ACCESS, client,
CurrentSelections[i].window, RT_WINDOW,
- SecurityReadAccess, CurrentSelections[i].pWin))
+ DixReadAccess, CurrentSelections[i].pWin))
{
event.u.u.type = SelectionRequest;
event.u.selectionRequest.time = stuff->time;
@@ -1263,11 +1263,11 @@ ProcTranslateCoords(register ClientPtr c
REQUEST_SIZE_MATCH(xTranslateCoordsReq);
pWin = (WindowPtr)SecurityLookupWindow(stuff->srcWid, client,
- SecurityReadAccess);
+ DixReadAccess);
if (!pWin)
return(BadWindow);
pDst = (WindowPtr)SecurityLookupWindow(stuff->dstWid, client,
- SecurityReadAccess);
+ DixReadAccess);
if (!pDst)
return(BadWindow);
rep.type = X_Reply;
@@ -1358,7 +1358,7 @@ ProcCloseFont(register ClientPtr client)
REQUEST_SIZE_MATCH(xResourceReq);
pFont = (FontPtr)SecurityLookupIDByType(client, stuff->id, RT_FONT,
- SecurityDestroyAccess);
+ DixDestroyAccess);
if ( pFont != (FontPtr)NULL) /* id was valid */
{
FreeResource(stuff->id, RT_NONE);
@@ -1382,12 +1382,12 @@ ProcQueryFont(register ClientPtr client)
REQUEST_SIZE_MATCH(xResourceReq);
client->errorValue = stuff->id; /* EITHER font or gc */
pFont = (FontPtr)SecurityLookupIDByType(client, stuff->id, RT_FONT,
- SecurityReadAccess);
+ DixReadAccess);
if (!pFont)
{
/* can't use VERIFY_GC because it might return BadGC */
pGC = (GC *) SecurityLookupIDByType(client, stuff->id, RT_GC,
- SecurityReadAccess);
+ DixReadAccess);
if (!pGC)
{
client->errorValue = stuff->id;
@@ -1443,11 +1443,11 @@ ProcQueryTextExtents(register ClientPtr
REQUEST_AT_LEAST_SIZE(xQueryTextExtentsReq);
pFont = (FontPtr)SecurityLookupIDByType(client, stuff->fid, RT_FONT,
- SecurityReadAccess);
+ DixReadAccess);
if (!pFont)
{
pGC = (GC *)SecurityLookupIDByType(client, stuff->fid, RT_GC,
- SecurityReadAccess);
+ DixReadAccess);
if (!pGC)
{
client->errorValue = stuff->fid;
@@ -1526,7 +1526,7 @@ ProcCreatePixmap(register ClientPtr clie
client->errorValue = stuff->pid;
LEGAL_NEW_RESOURCE(stuff->pid, client);
SECURITY_VERIFY_GEOMETRABLE (pDraw, stuff->drawable, client,
- SecurityReadAccess);
+ DixReadAccess);
if (!stuff->width || !stuff->height)
{
client->errorValue = 0;
@@ -1581,7 +1581,7 @@ ProcFreePixmap(register ClientPtr client
REQUEST_SIZE_MATCH(xResourceReq);
pMap = (PixmapPtr)SecurityLookupIDByType(client, stuff->id, RT_PIXMAP,
- SecurityDestroyAccess);
+ DixDestroyAccess);
if (pMap)
{
FreeResource(stuff->id, RT_NONE);
@@ -1607,7 +1607,7 @@ ProcCreateGC(register ClientPtr client)
client->errorValue = stuff->gc;
LEGAL_NEW_RESOURCE(stuff->gc, client);
SECURITY_VERIFY_DRAWABLE (pDraw, stuff->drawable, client,
- SecurityReadAccess);
+ DixReadAccess);
len = client->req_len - (sizeof(xCreateGCReq) >> 2);
if (len != Ones(stuff->mask))
return BadLength;
@@ -1629,7 +1629,7 @@ ProcChangeGC(register ClientPtr client)
unsigned len;
REQUEST_AT_LEAST_SIZE(xChangeGCReq);
- SECURITY_VERIFY_GC(pGC, stuff->gc, client, SecurityWriteAccess);
+ SECURITY_VERIFY_GC(pGC, stuff->gc, client, DixWriteAccess);
len = client->req_len - (sizeof(xChangeGCReq) >> 2);
if (len != Ones(stuff->mask))
return BadLength;
@@ -1653,8 +1653,8 @@ ProcCopyGC(register ClientPtr client)
REQUEST(xCopyGCReq);
REQUEST_SIZE_MATCH(xCopyGCReq);
- SECURITY_VERIFY_GC( pGC, stuff->srcGC, client, SecurityReadAccess);
- SECURITY_VERIFY_GC( dstGC, stuff->dstGC, client, SecurityWriteAccess);
+ SECURITY_VERIFY_GC( pGC, stuff->srcGC, client, DixReadAccess);
+ SECURITY_VERIFY_GC( dstGC, stuff->dstGC, client, DixWriteAccess);
if ((dstGC->pScreen != pGC->pScreen) || (dstGC->depth != pGC->depth))
return (BadMatch);
result = CopyGC(pGC, dstGC, stuff->mask);
@@ -1681,7 +1681,7 @@ ProcSetDashes(register ClientPtr client)
return BadValue;
}
- SECURITY_VERIFY_GC(pGC,stuff->gc, client, SecurityWriteAccess);
+ SECURITY_VERIFY_GC(pGC,stuff->gc, client, DixWriteAccess);
result = SetDashes(pGC, stuff->dashOffset, stuff->nDashes,
(unsigned char *)&stuff[1]);
@@ -1709,7 +1709,7 @@ ProcSetClipRectangles(register ClientPtr
client->errorValue = stuff->ordering;
return BadValue;
}
- SECURITY_VERIFY_GC(pGC,stuff->gc, client, SecurityWriteAccess);
+ SECURITY_VERIFY_GC(pGC,stuff->gc, client, DixWriteAccess);
nr = (client->req_len << 2) - sizeof(xSetClipRectanglesReq);
if (nr & 4)
@@ -1730,7 +1730,7 @@ ProcFreeGC(register ClientPtr client)
REQUEST(xResourceReq);
REQUEST_SIZE_MATCH(xResourceReq);
- SECURITY_VERIFY_GC(pGC, stuff->id, client, SecurityDestroyAccess);
+ SECURITY_VERIFY_GC(pGC, stuff->id, client, DixDestroyAccess);
FreeResource(stuff->id, RT_NONE);
return(client->noClientException);
}
@@ -1743,7 +1743,7 @@ ProcClearToBackground(register ClientPtr
REQUEST_SIZE_MATCH(xClearAreaReq);
pWin = (WindowPtr)SecurityLookupWindow(stuff->window, client,
- SecurityWriteAccess);
+ DixWriteAccess);
if (!pWin)
return(BadWindow);
if (pWin->drawable.class == InputOnly)
@@ -1777,7 +1777,7 @@ ProcCopyArea(register ClientPtr client)
if (stuff->dstDrawable != stuff->srcDrawable)
{
SECURITY_VERIFY_DRAWABLE(pSrc, stuff->srcDrawable, client,
- SecurityReadAccess);
+ DixReadAccess);
if ((pDst->pScreen != pSrc->pScreen) || (pDst->depth != pSrc->depth))
{
client->errorValue = stuff->dstDrawable;
@@ -1817,7 +1817,7 @@ ProcCopyPlane(register ClientPtr client)
if (stuff->dstDrawable != stuff->srcDrawable)
{
SECURITY_VERIFY_DRAWABLE(psrcDraw, stuff->srcDrawable, client,
- SecurityReadAccess);
+ DixReadAccess);
if (pdstDraw->pScreen != psrcDraw->pScreen)
{
client->errorValue = stuff->dstDrawable;
@@ -2156,7 +2156,7 @@ DoGetImage(register ClientPtr client, in
client->errorValue = format;
return(BadValue);
}
- SECURITY_VERIFY_DRAWABLE(pDraw, drawable, client, SecurityReadAccess);
+ SECURITY_VERIFY_DRAWABLE(pDraw, drawable, client, DixReadAccess);
if(pDraw->type == DRAWABLE_WINDOW)
{
if( /* check for being viewable */
@@ -2478,7 +2478,7 @@ ProcCreateColormap(register ClientPtr cl
mid = stuff->mid;
LEGAL_NEW_RESOURCE(mid, client);
pWin = (WindowPtr)SecurityLookupWindow(stuff->window, client,
- SecurityReadAccess);
+ DixReadAccess);
if (!pWin)
return(BadWindow);
@@ -2508,7 +2508,7 @@ ProcFreeColormap(register ClientPtr clie
REQUEST_SIZE_MATCH(xResourceReq);
pmap = (ColormapPtr )SecurityLookupIDByType(client, stuff->id, RT_COLORMAP,
- SecurityDestroyAccess);
+ DixDestroyAccess);
if (pmap)
{
/* Freeing a default colormap is a no-op */
@@ -2536,7 +2536,7 @@ ProcCopyColormapAndFree(register ClientP
mid = stuff->mid;
LEGAL_NEW_RESOURCE(mid, client);
if( (pSrcMap = (ColormapPtr )SecurityLookupIDByType(client, stuff->srcCmap,
- RT_COLORMAP, SecurityReadAccess|SecurityWriteAccess)) )
+ RT_COLORMAP, DixReadAccess|DixWriteAccess)) )
{
result = CopyColormapAndFree(mid, pSrcMap, client->index);
if (client->noClientException != Success)
@@ -2559,7 +2559,7 @@ ProcInstallColormap(register ClientPtr c
REQUEST_SIZE_MATCH(xResourceReq);
pcmp = (ColormapPtr)SecurityLookupIDByType(client, stuff->id,
- RT_COLORMAP, SecurityReadAccess);
+ RT_COLORMAP, DixReadAccess);
if (pcmp)
{
(*(pcmp->pScreen->InstallColormap)) (pcmp);
@@ -2580,7 +2580,7 @@ ProcUninstallColormap(register ClientPtr
REQUEST_SIZE_MATCH(xResourceReq);
pcmp = (ColormapPtr)SecurityLookupIDByType(client, stuff->id,
- RT_COLORMAP, SecurityReadAccess);
+ RT_COLORMAP, DixReadAccess);
if (pcmp)
{
if(pcmp->mid != pcmp->pScreen->defColormap)
@@ -2604,7 +2604,7 @@ ProcListInstalledColormaps(register Clie
REQUEST_SIZE_MATCH(xResourceReq);
pWin = (WindowPtr)SecurityLookupWindow(stuff->id, client,
- SecurityReadAccess);
+ DixReadAccess);
if (!pWin)
return(BadWindow);
@@ -2639,7 +2639,7 @@ ProcAllocColor (register ClientPtr clien
REQUEST_SIZE_MATCH(xAllocColorReq);
pmap = (ColormapPtr)SecurityLookupIDByType(client, stuff->cmap,
- RT_COLORMAP, SecurityWriteAccess);
+ RT_COLORMAP, DixWriteAccess);
if (pmap)
{
acr.type = X_Reply;
@@ -2679,7 +2679,7 @@ ProcAllocNamedColor (register ClientPtr
REQUEST_FIXED_SIZE(xAllocNamedColorReq, stuff->nbytes);
pcmp = (ColormapPtr)SecurityLookupIDByType(client, stuff->cmap,
- RT_COLORMAP, SecurityWriteAccess);
+ RT_COLORMAP, DixWriteAccess);
if (pcmp)
{
int retval;
@@ -2731,7 +2731,7 @@ ProcAllocColorCells (register ClientPtr
REQUEST_SIZE_MATCH(xAllocColorCellsReq);
pcmp = (ColormapPtr)SecurityLookupIDByType(client, stuff->cmap,
- RT_COLORMAP, SecurityWriteAccess);
+ RT_COLORMAP, DixWriteAccess);
if (pcmp)
{
xAllocColorCellsReply accr;
@@ -2797,7 +2797,7 @@ ProcAllocColorPlanes(register ClientPtr
REQUEST_SIZE_MATCH(xAllocColorPlanesReq);
pcmp = (ColormapPtr)SecurityLookupIDByType(client, stuff->cmap,
- RT_COLORMAP, SecurityWriteAccess);
+ RT_COLORMAP, DixWriteAccess);
if (pcmp)
{
xAllocColorPlanesReply acpr;
@@ -2861,7 +2861,7 @@ ProcFreeColors(register ClientPtr client
REQUEST_AT_LEAST_SIZE(xFreeColorsReq);
pcmp = (ColormapPtr)SecurityLookupIDByType(client, stuff->cmap,
- RT_COLORMAP, SecurityWriteAccess);
+ RT_COLORMAP, DixWriteAccess);
if (pcmp)
{
int count;
@@ -2896,7 +2896,7 @@ ProcStoreColors (ClientPtr client)
REQUEST_AT_LEAST_SIZE(xStoreColorsReq);
pcmp = (ColormapPtr)SecurityLookupIDByType(client, stuff->cmap,
- RT_COLORMAP, SecurityWriteAccess);
+ RT_COLORMAP, DixWriteAccess);
if (pcmp)
{
int count;
@@ -2930,7 +2930,7 @@ ProcStoreNamedColor (register ClientPtr
REQUEST_FIXED_SIZE(xStoreNamedColorReq, stuff->nbytes);
pcmp = (ColormapPtr)SecurityLookupIDByType(client, stuff->cmap,
- RT_COLORMAP, SecurityWriteAccess);
+ RT_COLORMAP, DixWriteAccess);
if (pcmp)
{
xColorItem def;
@@ -2964,7 +2964,7 @@ ProcQueryColors(register ClientPtr clien
REQUEST_AT_LEAST_SIZE(xQueryColorsReq);
pcmp = (ColormapPtr)SecurityLookupIDByType(client, stuff->cmap,
- RT_COLORMAP, SecurityReadAccess);
+ RT_COLORMAP, DixReadAccess);
if (pcmp)
{
int count, retval;
@@ -3015,7 +3015,7 @@ ProcLookupColor(register ClientPtr clien
REQUEST_FIXED_SIZE(xLookupColorReq, stuff->nbytes);
pcmp = (ColormapPtr)SecurityLookupIDByType(client, stuff->cmap,
- RT_COLORMAP, SecurityReadAccess);
+ RT_COLORMAP, DixReadAccess);
if (pcmp)
{
xLookupColorReply lcr;
@@ -3065,9 +3065,9 @@ ProcCreateCursor (register ClientPtr cli
LEGAL_NEW_RESOURCE(stuff->cid, client);
src = (PixmapPtr)SecurityLookupIDByType(client, stuff->source,
- RT_PIXMAP, SecurityReadAccess);
+ RT_PIXMAP, DixReadAccess);
msk = (PixmapPtr)SecurityLookupIDByType(client, stuff->mask,
- RT_PIXMAP, SecurityReadAccess);
+ RT_PIXMAP, DixReadAccess);
if ( src == (PixmapPtr)NULL)
{
client->errorValue = stuff->source;
@@ -3167,7 +3167,7 @@ ProcFreeCursor (register ClientPtr clien
REQUEST_SIZE_MATCH(xResourceReq);
pCursor = (CursorPtr)SecurityLookupIDByType(client, stuff->id,
- RT_CURSOR, SecurityDestroyAccess);
+ RT_CURSOR, DixDestroyAccess);
if (pCursor)
{
FreeResource(stuff->id, RT_NONE);
@@ -3197,7 +3197,7 @@ ProcQueryBestSize (register ClientPtr cl
return(BadValue);
}
SECURITY_VERIFY_GEOMETRABLE (pDraw, stuff->drawable, client,
- SecurityReadAccess);
+ DixReadAccess);
if (stuff->class != CursorShape && pDraw->type == UNDRAWABLE_WINDOW)
return (BadMatch);
pScreen = pDraw->pScreen;
@@ -3321,7 +3321,7 @@ ProcListHosts(register ClientPtr client)
REQUEST_SIZE_MATCH(xListHostsReq);
/* untrusted clients can't list hosts */
- if (!XaceHook(XACE_HOSTLIST_ACCESS, client, SecurityReadAccess))
+ if (!XaceHook(XACE_HOSTLIST_ACCESS, client, DixReadAccess))
return BadAccess;
result = GetHosts(&pdata, &nHosts, &len, &reply.enabled);
diff --git a/dix/dixfonts.c b/dix/dixfonts.c
index 7e2ed50..d5b42dc 100644
--- a/dix/dixfonts.c
+++ b/dix/dixfonts.c
@@ -1178,7 +1178,7 @@ doPolyText(ClientPtr client, register PT
if (c->slept &&
c->pDraw &&
c->pDraw != (DrawablePtr)SecurityLookupIDByClass(client, c->did,
- RC_DRAWABLE, SecurityWriteAccess))
+ RC_DRAWABLE, DixWriteAccess))
{
/* Our drawable has disappeared. Treat like client died... ask
the FPE code to clean up after client and avoid further
@@ -1208,7 +1208,7 @@ doPolyText(ClientPtr client, register PT
| ((Font)*(c->pElt+2)) << 16
| ((Font)*(c->pElt+1)) << 24;
pFont = (FontPtr)SecurityLookupIDByType(client, fid, RT_FONT,
- SecurityReadAccess);
+ DixReadAccess);
if (!pFont)
{
client->errorValue = fid;
@@ -1463,7 +1463,7 @@ doImageText(ClientPtr client, register I
if (c->slept &&
c->pDraw &&
c->pDraw != (DrawablePtr)SecurityLookupIDByClass(client, c->did,
- RC_DRAWABLE, SecurityWriteAccess))
+ RC_DRAWABLE, DixWriteAccess))
{
/* Our drawable has disappeared. Treat like client died... ask
the FPE code to clean up after client. */
@@ -2016,7 +2016,7 @@ FontPtr
find_old_font(XID id)
{
return (FontPtr) SecurityLookupIDByType(NullClient, id, RT_NONE,
- SecurityUnknownAccess);
+ DixUnknownAccess);
}
Font
diff --git a/dix/dixutils.c b/dix/dixutils.c
index af7e1c8..fca55d9 100644
--- a/dix/dixutils.c
+++ b/dix/dixutils.c
@@ -236,13 +236,13 @@ SecurityLookupDrawable(XID rid, ClientPt
_X_EXPORT WindowPtr
LookupWindow(XID rid, ClientPtr client)
{
- return SecurityLookupWindow(rid, client, SecurityUnknownAccess);
+ return SecurityLookupWindow(rid, client, DixUnknownAccess);
}
_X_EXPORT pointer
LookupDrawable(XID rid, ClientPtr client)
{
- return SecurityLookupDrawable(rid, client, SecurityUnknownAccess);
+ return SecurityLookupDrawable(rid, client, DixUnknownAccess);
}
#else /* not XACE */
@@ -293,7 +293,7 @@ _X_EXPORT ClientPtr
LookupClient(XID rid, ClientPtr client)
{
pointer pRes = (pointer)SecurityLookupIDByClass(client, rid, RC_ANY,
- SecurityReadAccess);
+ DixReadAccess);
int clientIndex = CLIENT_ID(rid);
if (clientIndex && pRes && clients[clientIndex] && !(rid & SERVER_BIT))
diff --git a/dix/events.c b/dix/events.c
index 0a39dcd..c7cf73e 100644
--- a/dix/events.c
+++ b/dix/events.c
@@ -2235,7 +2235,7 @@ XineramaWarpPointer(ClientPtr client)
if (stuff->dstWid != None)
{
- dest = SecurityLookupWindow(stuff->dstWid, client, SecurityReadAccess);
+ dest = SecurityLookupWindow(stuff->dstWid, client, DixReadAccess);
if (!dest)
return BadWindow;
}
@@ -2248,7 +2248,7 @@ XineramaWarpPointer(ClientPtr client)
XID winID = stuff->srcWid;
WindowPtr source;
- source = SecurityLookupWindow(winID, client, SecurityReadAccess);
+ source = SecurityLookupWindow(winID, client, DixReadAccess);
if (!source) return BadWindow;
winX = source->drawable.x;
@@ -2315,7 +2315,7 @@ ProcWarpPointer(ClientPtr client)
if (stuff->dstWid != None)
{
- dest = SecurityLookupWindow(stuff->dstWid, client, SecurityReadAccess);
+ dest = SecurityLookupWindow(stuff->dstWid, client, DixReadAccess);
if (!dest)
return BadWindow;
}
@@ -2328,7 +2328,7 @@ ProcWarpPointer(ClientPtr client)
XID winID = stuff->srcWid;
WindowPtr source;
- source = SecurityLookupWindow(winID, client, SecurityReadAccess);
+ source = SecurityLookupWindow(winID, client, DixReadAccess);
if (!source) return BadWindow;
winX = source->drawable.x;
@@ -3551,7 +3551,7 @@ SetInputFocus(
else if ((focusID == FollowKeyboard) && followOK)
focusWin = inputInfo.keyboard->focus->win;
else if (!(focusWin = SecurityLookupWindow(focusID, client,
- SecurityReadAccess)))
+ DixReadAccess)))
return BadWindow;
else
{
@@ -3671,7 +3671,7 @@ ProcGrabPointer(ClientPtr client)
client->errorValue = stuff->eventMask;
return BadValue;
}
- pWin = SecurityLookupWindow(stuff->grabWindow, client, SecurityReadAccess);
+ pWin = SecurityLookupWindow(stuff->grabWindow, client, DixReadAccess);
if (!pWin)
return BadWindow;
if (stuff->confineTo == None)
@@ -3679,7 +3679,7 @@ ProcGrabPointer(ClientPtr client)
else
{
confineTo = SecurityLookupWindow(stuff->confineTo, client,
- SecurityReadAccess);
+ DixReadAccess);
if (!confineTo)
return BadWindow;
}
@@ -3688,7 +3688,7 @@ ProcGrabPointer(ClientPtr client)
else
{
cursor = (CursorPtr)SecurityLookupIDByType(client, stuff->cursor,
- RT_CURSOR, SecurityReadAccess);
+ RT_CURSOR, DixReadAccess);
if (!cursor)
{
client->errorValue = stuff->cursor;
@@ -3762,7 +3762,7 @@ ProcChangeActivePointerGrab(ClientPtr cl
else
{
newCursor = (CursorPtr)SecurityLookupIDByType(client, stuff->cursor,
- RT_CURSOR, SecurityReadAccess);
+ RT_CURSOR, DixReadAccess);
if (!newCursor)
{
client->errorValue = stuff->cursor;
@@ -3832,7 +3832,7 @@ GrabDevice(register ClientPtr client, re
client->errorValue = ownerEvents;
return BadValue;
}
- pWin = SecurityLookupWindow(grabWindow, client, SecurityReadAccess);
+ pWin = SecurityLookupWindow(grabWindow, client, DixReadAccess);
if (!pWin)
return BadWindow;
time = ClientTimeToServerTime(ctime);
@@ -3920,7 +3920,7 @@ ProcQueryPointer(ClientPtr client)
DeviceIntPtr mouse = inputInfo.pointer;
REQUEST_SIZE_MATCH(xResourceReq);
- pWin = SecurityLookupWindow(stuff->id, client, SecurityReadAccess);
+ pWin = SecurityLookupWindow(stuff->id, client, DixReadAccess);
if (!pWin)
return BadWindow;
if (mouse->valuator->motionHintWindow)
@@ -4087,7 +4087,7 @@ ProcSendEvent(ClientPtr client)
}
else
pWin = SecurityLookupWindow(stuff->destination, client,
- SecurityReadAccess);
+ DixReadAccess);
if (!pWin)
return BadWindow;
if ((stuff->propagate != xFalse) && (stuff->propagate != xTrue))
@@ -4125,7 +4125,7 @@ ProcUngrabKey(ClientPtr client)
DeviceIntPtr keybd = inputInfo.keyboard;
REQUEST_SIZE_MATCH(xUngrabKeyReq);
- pWin = SecurityLookupWindow(stuff->grabWindow, client, SecurityReadAccess);
+ pWin = SecurityLookupWindow(stuff->grabWindow, client, DixReadAccess);
if (!pWin)
return BadWindow;
@@ -4196,7 +4196,7 @@ ProcGrabKey(ClientPtr client)
client->errorValue = stuff->modifiers;
return BadValue;
}
- pWin = SecurityLookupWindow(stuff->grabWindow, client, SecurityReadAccess);
+ pWin = SecurityLookupWindow(stuff->grabWindow, client, DixReadAccess);
if (!pWin)
return BadWindow;
@@ -4248,14 +4248,14 @@ ProcGrabButton(ClientPtr client)
client->errorValue = stuff->eventMask;
return BadValue;
}
- pWin = SecurityLookupWindow(stuff->grabWindow, client, SecurityReadAccess);
+ pWin = SecurityLookupWindow(stuff->grabWindow, client, DixReadAccess);
if (!pWin)
return BadWindow;
if (stuff->confineTo == None)
confineTo = NullWindow;
else {
confineTo = SecurityLookupWindow(stuff->confineTo, client,
- SecurityReadAccess);
+ DixReadAccess);
if (!confineTo)
return BadWindow;
}
@@ -4264,7 +4264,7 @@ ProcGrabButton(ClientPtr client)
else
{
cursor = (CursorPtr)SecurityLookupIDByType(client, stuff->cursor,
- RT_CURSOR, SecurityReadAccess);
+ RT_CURSOR, DixReadAccess);
if (!cursor)
{
client->errorValue = stuff->cursor;
@@ -4297,7 +4297,7 @@ ProcUngrabButton(ClientPtr client)
client->errorValue = stuff->modifiers;
return BadValue;
}
- pWin = SecurityLookupWindow(stuff->grabWindow, client, SecurityReadAccess);
+ pWin = SecurityLookupWindow(stuff->grabWindow, client, DixReadAccess);
if (!pWin)
return BadWindow;
tempGrab.resource = client->clientAsMask;
@@ -4451,7 +4451,7 @@ ProcRecolorCursor(ClientPtr client)
REQUEST_SIZE_MATCH(xRecolorCursorReq);
pCursor = (CursorPtr)SecurityLookupIDByType(client, stuff->cursor,
- RT_CURSOR, SecurityWriteAccess);
+ RT_CURSOR, DixWriteAccess);
if ( !pCursor)
{
client->errorValue = stuff->cursor;
diff --git a/dix/gc.c b/dix/gc.c
index ed6bf26..5106fcd 100644
--- a/dix/gc.c
+++ b/dix/gc.c
@@ -271,7 +271,7 @@ dixChangeGC(ClientPtr client, register G
{
NEXTVAL(XID, newpix);
pPixmap = (PixmapPtr)SecurityLookupIDByType(client,
- newpix, RT_PIXMAP, SecurityReadAccess);
+ newpix, RT_PIXMAP, DixReadAccess);
}
if (pPixmap)
{
@@ -307,7 +307,7 @@ dixChangeGC(ClientPtr client, register G
{
NEXTVAL(XID, newstipple)
pPixmap = (PixmapPtr)SecurityLookupIDByType(client,
- newstipple, RT_PIXMAP, SecurityReadAccess);
+ newstipple, RT_PIXMAP, DixReadAccess);
}
if (pPixmap)
{
@@ -349,7 +349,7 @@ dixChangeGC(ClientPtr client, register G
{
NEXTVAL(XID, newfont)
pFont = (FontPtr)SecurityLookupIDByType(client, newfont,
- RT_FONT, SecurityReadAccess);
+ RT_FONT, DixReadAccess);
}
if (pFont)
{
@@ -416,7 +416,7 @@ dixChangeGC(ClientPtr client, register G
}
else
pPixmap = (PixmapPtr)SecurityLookupIDByType(client,
- pid, RT_PIXMAP, SecurityReadAccess);
+ pid, RT_PIXMAP, DixReadAccess);
}
if (pPixmap)
diff --git a/dix/property.c b/dix/property.c
index 00d4856..5c1e957 100644
--- a/dix/property.c
+++ b/dix/property.c
@@ -105,7 +105,7 @@ ProcRotateProperties(ClientPtr client)
REQUEST_FIXED_SIZE(xRotatePropertiesReq, stuff->nAtoms << 2);
UpdateCurrentTime();
pWin = (WindowPtr) SecurityLookupWindow(stuff->window, client,
- SecurityWriteAccess);
+ DixWriteAccess);
if (!pWin)
return(BadWindow);
if (!stuff->nAtoms)
@@ -117,7 +117,7 @@ ProcRotateProperties(ClientPtr client)
for (i = 0; i < stuff->nAtoms; i++)
{
char action = XaceHook(XACE_PROPERTY_ACCESS, client, pWin, atoms[i],
- SecurityReadAccess|SecurityWriteAccess);
+ DixReadAccess|DixWriteAccess);
if (!ValidAtom(atoms[i]) || (XaceErrorOperation == action)) {
DEALLOCATE_LOCAL(props);
@@ -209,7 +209,7 @@ ProcChangeProperty(ClientPtr client)
REQUEST_FIXED_SIZE(xChangePropertyReq, totalSize);
pWin = (WindowPtr)SecurityLookupWindow(stuff->window, client,
- SecurityWriteAccess);
+ DixWriteAccess);
if (!pWin)
return(BadWindow);
if (!ValidAtom(stuff->property))
@@ -224,7 +224,7 @@ ProcChangeProperty(ClientPtr client)
}
switch (XaceHook(XACE_PROPERTY_ACCESS, client, pWin, stuff->property,
- SecurityWriteAccess))
+ DixWriteAccess))
{
case XaceErrorOperation:
client->errorValue = stuff->property;
@@ -448,14 +448,14 @@ ProcGetProperty(ClientPtr client)
unsigned long n, len, ind;
WindowPtr pWin;
xGetPropertyReply reply;
- Mask access_mode = SecurityReadAccess;
+ Mask access_mode = DixReadAccess;
REQUEST(xGetPropertyReq);
REQUEST_SIZE_MATCH(xGetPropertyReq);
if (stuff->delete)
UpdateCurrentTime();
pWin = (WindowPtr)SecurityLookupWindow(stuff->window, client,
- SecurityReadAccess);
+ DixReadAccess);
if (!pWin)
return BadWindow;
@@ -491,7 +491,7 @@ ProcGetProperty(ClientPtr client)
return NullPropertyReply(client, None, 0, &reply);
if (stuff->delete)
- access_mode |= SecurityDestroyAccess;
+ access_mode |= DixDestroyAccess;
switch (XaceHook(XACE_PROPERTY_ACCESS, client, pWin, stuff->property,
access_mode))
{
@@ -592,7 +592,7 @@ ProcListProperties(ClientPtr client)
REQUEST_SIZE_MATCH(xResourceReq);
pWin = (WindowPtr)SecurityLookupWindow(stuff->id, client,
- SecurityReadAccess);
+ DixReadAccess);
if (!pWin)
return(BadWindow);
@@ -637,7 +637,7 @@ ProcDeleteProperty(register ClientPtr cl
REQUEST_SIZE_MATCH(xDeletePropertyReq);
UpdateCurrentTime();
pWin = (WindowPtr)SecurityLookupWindow(stuff->window, client,
- SecurityWriteAccess);
+ DixWriteAccess);
if (!pWin)
return(BadWindow);
if (!ValidAtom(stuff->property))
@@ -647,7 +647,7 @@ ProcDeleteProperty(register ClientPtr cl
}
switch (XaceHook(XACE_PROPERTY_ACCESS, client, pWin, stuff->property,
- SecurityDestroyAccess))
+ DixDestroyAccess))
{
case XaceErrorOperation:
client->errorValue = stuff->property;
diff --git a/dix/resource.c b/dix/resource.c
index c204460..4468f45 100644
--- a/dix/resource.c
+++ b/dix/resource.c
@@ -944,12 +944,12 @@ _X_EXPORT pointer
LookupIDByType(XID id, RESTYPE rtype)
{
return SecurityLookupIDByType(NullClient, id, rtype,
- SecurityUnknownAccess);
+ DixUnknownAccess);
}
_X_EXPORT pointer
LookupIDByClass(XID id, RESTYPE classes)
{
return SecurityLookupIDByClass(NullClient, id, classes,
- SecurityUnknownAccess);
+ DixUnknownAccess);
}
diff --git a/dix/window.c b/dix/window.c
index fa6906f..e33140d 100644
--- a/dix/window.c
+++ b/dix/window.c
@@ -1062,7 +1062,7 @@ ChangeWindowAttributes(register WindowPt
else
{
pPixmap = (PixmapPtr)SecurityLookupIDByType(client, pixID,
- RT_PIXMAP, SecurityReadAccess);
+ RT_PIXMAP, DixReadAccess);
if (pPixmap != (PixmapPtr) NULL)
{
if ((pPixmap->drawable.depth != pWin->drawable.depth) ||
@@ -1123,7 +1123,7 @@ ChangeWindowAttributes(register WindowPt
else
{
pPixmap = (PixmapPtr)SecurityLookupIDByType(client, pixID,
- RT_PIXMAP, SecurityReadAccess);
+ RT_PIXMAP, DixReadAccess);
if (pPixmap)
{
if ((pPixmap->drawable.depth != pWin->drawable.depth) ||
@@ -1333,7 +1333,7 @@ ChangeWindowAttributes(register WindowPt
goto PatchUp;
}
pCmap = (ColormapPtr)SecurityLookupIDByType(client, cmap,
- RT_COLORMAP, SecurityReadAccess);
+ RT_COLORMAP, DixReadAccess);
if (!pCmap)
{
error = BadColor;
@@ -1409,7 +1409,7 @@ ChangeWindowAttributes(register WindowPt
else
{
pCursor = (CursorPtr)SecurityLookupIDByType(client, cursorID,
- RT_CURSOR, SecurityReadAccess);
+ RT_CURSOR, DixReadAccess);
if (!pCursor)
{
error = BadCursor;
@@ -2299,7 +2299,7 @@ ConfigureWindow(register WindowPtr pWin,
sibwid = (Window ) *pVlist;
pVlist++;
pSib = (WindowPtr )SecurityLookupIDByType(client, sibwid,
- RT_WINDOW, SecurityReadAccess);
+ RT_WINDOW, DixReadAccess);
if (!pSib)
{
client->errorValue = sibwid;
diff --git a/hw/darwin/quartz/applewm.c b/hw/darwin/quartz/applewm.c
index 6db036f..a9d8b56 100644
--- a/hw/darwin/quartz/applewm.c
+++ b/hw/darwin/quartz/applewm.c
@@ -268,7 +268,7 @@ ProcAppleWMSelectInput (client)
REQUEST_SIZE_MATCH (xAppleWMSelectInputReq);
pHead = (WMEventPtr *)SecurityLookupIDByType(client,
- eventResource, EventType, SecurityWriteAccess);
+ eventResource, EventType, DixWriteAccess);
if (stuff->mask != 0) {
if (pHead) {
/* check for existing entry. */
@@ -491,7 +491,7 @@ ProcAppleWMSetWindowLevel(
REQUEST_SIZE_MATCH(xAppleWMSetWindowLevelReq);
if (!(pWin = SecurityLookupWindow((Drawable)stuff->window,
- client, SecurityReadAccess)))
+ client, DixReadAccess)))
{
return BadValue;
}
@@ -603,7 +603,7 @@ ProcAppleWMFrameDraw(
REQUEST_AT_LEAST_SIZE(xAppleWMFrameDrawReq);
if (!(pWin = SecurityLookupWindow((Drawable)stuff->window,
- client, SecurityReadAccess)))
+ client, DixReadAccess)))
{
return BadValue;
}
diff --git a/hw/darwin/quartz/xpr/appledri.c b/hw/darwin/quartz/xpr/appledri.c
index 6d9bae1..585d7e1 100644
--- a/hw/darwin/quartz/xpr/appledri.c
+++ b/hw/darwin/quartz/xpr/appledri.c
@@ -223,7 +223,7 @@ ProcAppleDRICreateSurface(
if (!(pDrawable = (DrawablePtr)SecurityLookupDrawable(
(Drawable)stuff->drawable,
client,
- SecurityReadAccess))) {
+ DixReadAccess))) {
return BadValue;
}
@@ -256,7 +256,7 @@ ProcAppleDRIDestroySurface(
if (!(pDrawable = (DrawablePtr)SecurityLookupDrawable(
(Drawable)stuff->drawable,
client,
- SecurityReadAccess))) {
+ DixReadAccess))) {
return BadValue;
}
diff --git a/hw/dmx/dmx.c b/hw/dmx/dmx.c
index 75623e6..02e8b1e 100644
--- a/hw/dmx/dmx.c
+++ b/hw/dmx/dmx.c
@@ -282,12 +282,12 @@ static int ProcDMXForceWindowCreation(Cl
int i;
if (!(win = SecurityLookupIDByType(client, stuff->window, XRT_WINDOW,
- SecurityReadAccess)))
+ DixReadAccess)))
return -1; /* BadWindow */
FOR_NSCREENS(i) {
if (!(pWin = SecurityLookupWindow(win->info[i].id, client,
- SecurityReadAccess)))
+ DixReadAccess)))
return -1; /* BadWindow */
dmxForceWindowCreation(pWin);
@@ -297,7 +297,7 @@ static int ProcDMXForceWindowCreation(Cl
#endif
if (!(pWin = SecurityLookupWindow(stuff->window, client,
- SecurityReadAccess)))
+ DixReadAccess)))
return -1; /* BadWindow */
dmxForceWindowCreation(pWin);
@@ -556,12 +556,12 @@ static int dmxPopulatePanoramiX(ClientPt
DMXWindowAttributesRec attr;
if (!(win = SecurityLookupIDByType(client, window, XRT_WINDOW,
- SecurityReadAccess)))
+ DixReadAccess)))
return -1; /* BadWindow */
FOR_NSCREENS(i) {
if (!(pWin = SecurityLookupWindow(win->info[i].id, client,
- SecurityReadAccess)))
+ DixReadAccess)))
return -1; /* BadWindow */
if (dmxGetWindowAttributes(pWin, &attr)) {
screens[count] = attr.screen;
@@ -587,7 +587,7 @@ static int dmxPopulate(ClientPtr client,
pos, vis);
#endif
- if (!(pWin = SecurityLookupWindow(window, client, SecurityReadAccess)))
+ if (!(pWin = SecurityLookupWindow(window, client, DixReadAccess)))
return -1; /* BadWindow */
dmxGetWindowAttributes(pWin, &attr);
diff --git a/hw/dmx/dmxpict.c b/hw/dmx/dmxpict.c
index 9cdd123..3396925 100644
--- a/hw/dmx/dmxpict.c
+++ b/hw/dmx/dmxpict.c
@@ -247,7 +247,7 @@ static int dmxProcRenderCreateGlyphSet(C
/* Make sure we handle all errors here!! */
glyphSet = SecurityLookupIDByType(client, stuff->gsid, GlyphSetType,
- SecurityDestroyAccess);
+ DixDestroyAccess);
glyphPriv = xalloc(sizeof(dmxGlyphPrivRec));
if (!glyphPriv) return BadAlloc;
glyphPriv->glyphSets = NULL;
@@ -255,7 +255,7 @@ static int dmxProcRenderCreateGlyphSet(C
DMX_SET_GLYPH_PRIV(glyphSet, glyphPriv);
pFmt = SecurityLookupIDByType(client, stuff->format, PictFormatType,
- SecurityReadAccess);
+ DixReadAccess);
oldErrorHandler = XSetErrorHandler(dmxGlyphErrorHandler);
@@ -315,7 +315,7 @@ static int dmxProcRenderFreeGlyphSet(Cli
REQUEST_SIZE_MATCH(xRenderFreeGlyphSetReq);
glyphSet = SecurityLookupIDByType(client, stuff->glyphset, GlyphSetType,
- SecurityDestroyAccess);
+ DixDestroyAccess);
if (glyphSet && glyphSet->refcnt == 1) {
dmxGlyphPrivPtr glyphPriv = DMX_GET_GLYPH_PRIV(glyphSet);
@@ -358,7 +358,7 @@ static int dmxProcRenderAddGlyphs(Client
int nbytes;
glyphSet = SecurityLookupIDByType(client, stuff->glyphset,
- GlyphSetType, SecurityReadAccess);
+ GlyphSetType, DixReadAccess);
glyphPriv = DMX_GET_GLYPH_PRIV(glyphSet);
nglyphs = stuff->nglyphs;
@@ -401,7 +401,7 @@ static int dmxProcRenderFreeGlyphs(Clien
REQUEST_AT_LEAST_SIZE(xRenderFreeGlyphsReq);
glyphSet = SecurityLookupIDByType(client, stuff->glyphset, GlyphSetType,
- SecurityWriteAccess);
+ DixWriteAccess);
if (glyphSet) {
dmxGlyphPrivPtr glyphPriv = DMX_GET_GLYPH_PRIV(glyphSet);
@@ -473,13 +473,13 @@ static int dmxProcRenderCompositeGlyphs(
dmxGlyphPrivPtr glyphPriv;
pSrc = SecurityLookupIDByType(client, stuff->src, PictureType,
- SecurityReadAccess);
+ DixReadAccess);
pSrcPriv = DMX_GET_PICT_PRIV(pSrc);
if (!pSrcPriv->pict)
return ret;
pDst = SecurityLookupIDByType(client, stuff->dst, PictureType,
- SecurityWriteAccess);
+ DixWriteAccess);
pDstPriv = DMX_GET_PICT_PRIV(pDst);
if (!pDstPriv->pict)
return ret;
@@ -496,7 +496,7 @@ static int dmxProcRenderCompositeGlyphs(
if (stuff->maskFormat)
pFmt = SecurityLookupIDByType(client, stuff->maskFormat,
- PictFormatType, SecurityReadAccess);
+ PictFormatType, DixReadAccess);
else
pFmt = NULL;
@@ -547,7 +547,7 @@ static int dmxProcRenderCompositeGlyphs(
curElt = elts;
glyphSet = SecurityLookupIDByType(client, stuff->glyphset,
- GlyphSetType, SecurityReadAccess);
+ GlyphSetType, DixReadAccess);
glyphPriv = DMX_GET_GLYPH_PRIV(glyphSet);
while (buffer + sizeof(xGlyphElt) < end) {
@@ -558,7 +558,7 @@ static int dmxProcRenderCompositeGlyphs(
glyphSet = SecurityLookupIDByType(client,
*((CARD32 *)buffer),
GlyphSetType,
- SecurityReadAccess);
+ DixReadAccess);
glyphPriv = DMX_GET_GLYPH_PRIV(glyphSet);
buffer += 4;
} else {
@@ -622,7 +622,7 @@ static int dmxProcRenderSetPictureTransf
REQUEST(xRenderSetPictureTransformReq);
REQUEST_SIZE_MATCH(xRenderSetPictureTransformReq);
- VERIFY_PICTURE(pPicture, stuff->picture, client, SecurityWriteAccess,
+ VERIFY_PICTURE(pPicture, stuff->picture, client, DixWriteAccess,
RenderErrBase + BadPicture);
/* For the following to work with PanoramiX, it assumes that Render
@@ -663,7 +663,7 @@ static int dmxProcRenderSetPictureFilter
REQUEST(xRenderSetPictureFilterReq);
REQUEST_AT_LEAST_SIZE(xRenderSetPictureFilterReq);
- VERIFY_PICTURE(pPicture, stuff->picture, client, SecurityWriteAccess,
+ VERIFY_PICTURE(pPicture, stuff->picture, client, DixWriteAccess,
RenderErrBase + BadPicture);
/* For the following to work with PanoramiX, it assumes that Render
diff --git a/hw/dmx/glxProxy/glxcmds.c b/hw/dmx/glxProxy/glxcmds.c
index 78cb34e..20a02a1 100644
--- a/hw/dmx/glxProxy/glxcmds.c
+++ b/hw/dmx/glxProxy/glxcmds.c
@@ -1105,13 +1105,13 @@ static int MakeCurrent(__GLXclientState
if (pDraw && new_reply.writeType != GLX_PBUFFER_TYPE) {
pXinDraw = (PanoramiXRes *)
- SecurityLookupIDByClass(client, pDraw->id, XRC_DRAWABLE, SecurityReadAccess);
+ SecurityLookupIDByClass(client, pDraw->id, XRC_DRAWABLE, DixReadAccess);
}
if (pReadDraw && pReadDraw != pDraw &&
new_reply.readType != GLX_PBUFFER_TYPE) {
pXinReadDraw = (PanoramiXRes *)
- SecurityLookupIDByClass(client, pReadDraw->id, XRC_DRAWABLE, SecurityReadAccess);
+ SecurityLookupIDByClass(client, pReadDraw->id, XRC_DRAWABLE, DixReadAccess);
}
else {
pXinReadDraw = pXinDraw;
@@ -1139,7 +1139,7 @@ static int MakeCurrent(__GLXclientState
else if (pXinDraw) {
pWin = (WindowPtr)SecurityLookupWindow(pXinDraw->info[s].id,
client,
- SecurityReadAccess);
+ DixReadAccess);
}
#endif
else if (pGlxWindow) {
@@ -1197,7 +1197,7 @@ static int MakeCurrent(__GLXclientState
else if (pXinReadDraw) {
pReadWin = (WindowPtr)SecurityLookupWindow(pXinReadDraw->info[s].id,
client,
- SecurityReadAccess);
+ DixReadAccess);
}
#endif
else if (pGlxReadWindow) {
@@ -1768,7 +1768,7 @@ static int CreateGLXPixmap(__GLXclientSt
to_screen = screenInfo.numScreens - 1;
pXinDraw = (PanoramiXRes *)
- SecurityLookupIDByClass(client, pDraw->id, XRC_DRAWABLE, SecurityReadAccess);
+ SecurityLookupIDByClass(client, pDraw->id, XRC_DRAWABLE, DixReadAccess);
}
#endif
@@ -2014,7 +2014,7 @@ int __glXDoSwapBuffers(__GLXclientState
from_screen = 0;
to_screen = screenInfo.numScreens - 1;
pXinDraw = (PanoramiXRes *)
- SecurityLookupIDByClass(client, pDraw->id, XRC_DRAWABLE, SecurityReadAccess);
+ SecurityLookupIDByClass(client, pDraw->id, XRC_DRAWABLE, DixReadAccess);
}
#endif
@@ -2060,7 +2060,7 @@ int __glXDoSwapBuffers(__GLXclientState
else if (pXinDraw) {
pWin = (WindowPtr)SecurityLookupWindow(pXinDraw->info[s].id,
client,
- SecurityReadAccess);
+ DixReadAccess);
}
#endif
else if (pGlxWindow) {
@@ -3069,7 +3069,7 @@ int __glXQueryContextInfoEXT(__GLXclient
int nReplyBytes;
req = (xGLXQueryContextInfoEXTReq *)pc;
- ctx = (__GLXcontext *) SecurityLookupIDByType(client, req->context, __glXContextRes, SecurityReadAccess);
+ ctx = (__GLXcontext *) SecurityLookupIDByType(client, req->context, __glXContextRes, DixReadAccess);
if (!ctx) {
client->errorValue = req->context;
return __glXBadContext;
@@ -3353,7 +3353,7 @@ int __glXGetDrawableAttributes(__GLXclie
#ifdef PANORAMIX
if (!noPanoramiXExtension) {
pXinDraw = (PanoramiXRes *)
- SecurityLookupIDByClass(client, pDraw->id, XRC_DRAWABLE, SecurityReadAccess);
+ SecurityLookupIDByClass(client, pDraw->id, XRC_DRAWABLE, DixReadAccess);
if (!pXinDraw) {
client->errorValue = drawId;
return __glXBadDrawable;
@@ -3361,7 +3361,7 @@ int __glXGetDrawableAttributes(__GLXclie
pWin = (WindowPtr)SecurityLookupWindow(pXinDraw->info[screen].id,
client,
- SecurityReadAccess);
+ DixReadAccess);
}
#endif
@@ -3515,7 +3515,7 @@ int __glXChangeDrawableAttributes(__GLXc
#ifdef PANORAMIX
if (!noPanoramiXExtension) {
pXinDraw = (PanoramiXRes *)
- SecurityLookupIDByClass(client, pDraw->id, XRC_DRAWABLE, SecurityReadAccess);
+ SecurityLookupIDByClass(client, pDraw->id, XRC_DRAWABLE, DixReadAccess);
if (!pXinDraw) {
client->errorValue = drawId;
return __glXBadDrawable;
@@ -3523,7 +3523,7 @@ int __glXChangeDrawableAttributes(__GLXc
pWin = (WindowPtr)SecurityLookupWindow(pXinDraw->info[screen].id,
client,
- SecurityReadAccess);
+ DixReadAccess);
}
#endif
diff --git a/hw/xfree86/dri/xf86dri.c b/hw/xfree86/dri/xf86dri.c
index d14b3d8..03e6725 100644
--- a/hw/xfree86/dri/xf86dri.c
+++ b/hw/xfree86/dri/xf86dri.c
@@ -401,7 +401,7 @@ ProcXF86DRICreateDrawable(
if (!(pDrawable = (DrawablePtr)SecurityLookupDrawable(
(Drawable)stuff->drawable,
client,
- SecurityReadAccess))) {
+ DixReadAccess))) {
return BadValue;
}
@@ -432,7 +432,7 @@ ProcXF86DRIDestroyDrawable(
if (!(pDrawable = (DrawablePtr)SecurityLookupDrawable(
(Drawable)stuff->drawable,
client,
- SecurityReadAccess))) {
+ DixReadAccess))) {
return BadValue;
}
@@ -471,7 +471,7 @@ ProcXF86DRIGetDrawableInfo(
if (!(pDrawable = (DrawablePtr)SecurityLookupDrawable(
(Drawable)stuff->drawable,
client,
- SecurityReadAccess))) {
+ DixReadAccess))) {
return BadValue;
}
diff --git a/hw/xwin/winclipboardwrappers.c b/hw/xwin/winclipboardwrappers.c
index 8801f6c..e9bcea9 100755
--- a/hw/xwin/winclipboardwrappers.c
+++ b/hw/xwin/winclipboardwrappers.c
@@ -345,7 +345,7 @@ winProcSetSelectionOwner (ClientPtr clie
{
/* Grab the Window from the request */
pWindow = (WindowPtr) SecurityLookupWindow (stuff->window, client,
- SecurityReadAccess);
+ DixReadAccess);
if (!pWindow)
{
ErrorF ("winProcSetSelectionOwner - Found BadWindow, aborting.\n");
diff --git a/hw/xwin/winwindowswm.c b/hw/xwin/winwindowswm.c
index 81a1610..ac92e26 100755
--- a/hw/xwin/winwindowswm.c
+++ b/hw/xwin/winwindowswm.c
@@ -203,7 +203,7 @@ ProcWindowsWMSelectInput (register Clien
REQUEST_SIZE_MATCH (xWindowsWMSelectInputReq);
pHead = (WMEventPtr *)SecurityLookupIDByType(client, eventResource,
- EventType, SecurityWriteAccess);
+ EventType, DixWriteAccess);
if (stuff->mask != 0)
{
if (pHead)
@@ -451,7 +451,7 @@ ProcWindowsWMFrameDraw (register ClientP
ErrorF ("ProcWindowsWMFrameDraw\n");
#endif
if (!(pWin = SecurityLookupWindow((Drawable)stuff->window,
- client, SecurityReadAccess)))
+ client, DixReadAccess)))
{
return BadValue;
}
@@ -546,7 +546,7 @@ ProcWindowsWMFrameSetTitle(
REQUEST_AT_LEAST_SIZE(xWindowsWMFrameSetTitleReq);
if (!(pWin = SecurityLookupWindow((Drawable)stuff->window,
- client, SecurityReadAccess)))
+ client, DixReadAccess)))
{
return BadValue;
}
diff --git a/include/dix.h b/include/dix.h
index a5a570a..2c87a48 100644
--- a/include/dix.h
+++ b/include/dix.h
@@ -122,13 +122,13 @@ SOFTWARE.
}
#define VERIFY_DRAWABLE(pDraw, did, client)\
- SECURITY_VERIFY_DRAWABLE(pDraw, did, client, SecurityUnknownAccess)
+ SECURITY_VERIFY_DRAWABLE(pDraw, did, client, DixUnknownAccess)
#define VERIFY_GEOMETRABLE(pDraw, did, client)\
- SECURITY_VERIFY_GEOMETRABLE(pDraw, did, client, SecurityUnknownAccess)
+ SECURITY_VERIFY_GEOMETRABLE(pDraw, did, client, DixUnknownAccess)
#define VERIFY_GC(pGC, rid, client)\
- SECURITY_VERIFY_GC(pGC, rid, client, SecurityUnknownAccess)
+ SECURITY_VERIFY_GC(pGC, rid, client, DixUnknownAccess)
#else /* not XACE */
@@ -239,8 +239,8 @@ SOFTWARE.
if ((stuff->gc == INVALID) || (client->lastGCID != stuff->gc) ||\
(client->lastDrawableID != drawID))\
{\
- SECURITY_VERIFY_GEOMETRABLE(pDraw, drawID, client, SecurityWriteAccess);\
- SECURITY_VERIFY_GC(pGC, stuff->gc, client, SecurityReadAccess);\
+ SECURITY_VERIFY_GEOMETRABLE(pDraw, drawID, client, DixWriteAccess);\
+ SECURITY_VERIFY_GC(pGC, stuff->gc, client, DixReadAccess);\
if ((pGC->depth != pDraw->depth) ||\
(pGC->pScreen != pDraw->pScreen))\
return (BadMatch);\
diff --git a/include/resource.h b/include/resource.h
index fd0caae..3231e8c 100644
--- a/include/resource.h
+++ b/include/resource.h
@@ -220,10 +220,11 @@ extern pointer LookupClientResourceCompl
* simultaneously.
*/
-#define SecurityUnknownAccess 0 /* don't know intentions */
-#define SecurityReadAccess (1<<0) /* inspecting the object */
-#define SecurityWriteAccess (1<<1) /* changing the object */
-#define SecurityDestroyAccess (1<<2) /* destroying the object */
+#define DixUnknownAccess 0 /* don't know intentions */
+#define DixReadAccess (1<<0) /* inspecting the object */
+#define DixWriteAccess (1<<1) /* changing the object */
+#define DixReadWriteAccess (DixReadAccess|DixWriteAccess)
+#define DixDestroyAccess (1<<2) /* destroying the object */
extern pointer SecurityLookupIDByType(
ClientPtr /*client*/,
diff --git a/os/access.c b/os/access.c
index d61edef..db5ca31 100644
--- a/os/access.c
+++ b/os/access.c
@@ -1528,7 +1528,7 @@ AuthorizedClient(ClientPtr client)
return TRUE;
/* untrusted clients can't change host access */
- if (!XaceHook(XACE_HOSTLIST_ACCESS, client, SecurityWriteAccess))
+ if (!XaceHook(XACE_HOSTLIST_ACCESS, client, DixWriteAccess))
return FALSE;
return LocalClient(client);
diff --git a/randr/rrcrtc.c b/randr/rrcrtc.c
index e8a7b79..d4c96f6 100644
--- a/randr/rrcrtc.c
+++ b/randr/rrcrtc.c
@@ -457,7 +457,7 @@ ProcRRGetCrtcInfo (ClientPtr client)
int i, j, k, n;
REQUEST_SIZE_MATCH(xRRGetCrtcInfoReq);
- crtc = LookupCrtc(client, stuff->crtc, SecurityReadAccess);
+ crtc = LookupCrtc(client, stuff->crtc, DixReadAccess);
if (!crtc)
return RRErrorBase + BadRRCrtc;
@@ -766,7 +766,7 @@ ProcRRGetCrtcGammaSize (ClientPtr client
int n;
REQUEST_SIZE_MATCH(xRRGetCrtcGammaSizeReq);
- crtc = LookupCrtc (client, stuff->crtc, SecurityReadAccess);
+ crtc = LookupCrtc (client, stuff->crtc, DixReadAccess);
if (!crtc)
return RRErrorBase + BadRRCrtc;
@@ -793,7 +793,7 @@ ProcRRGetCrtcGamma (ClientPtr client)
unsigned long len;
REQUEST_SIZE_MATCH(xRRGetCrtcGammaReq);
- crtc = LookupCrtc (client, stuff->crtc, SecurityReadAccess);
+ crtc = LookupCrtc (client, stuff->crtc, DixReadAccess);
if (!crtc)
return RRErrorBase + BadRRCrtc;
@@ -826,7 +826,7 @@ ProcRRSetCrtcGamma (ClientPtr client)
CARD16 *red, *green, *blue;
REQUEST_SIZE_MATCH(xRRSetCrtcGammaReq);
- crtc = LookupCrtc (client, stuff->crtc, SecurityWriteAccess);
+ crtc = LookupCrtc (client, stuff->crtc, DixWriteAccess);
if (!crtc)
return RRErrorBase + BadRRCrtc;
diff --git a/randr/rrdispatch.c b/randr/rrdispatch.c
index 6b61b9c..b1ec68b 100644
--- a/randr/rrdispatch.c
+++ b/randr/rrdispatch.c
@@ -72,12 +72,12 @@ ProcRRSelectInput (ClientPtr client)
XID clientResource;
REQUEST_SIZE_MATCH(xRRSelectInputReq);
- pWin = SecurityLookupWindow (stuff->window, client, SecurityWriteAccess);
+ pWin = SecurityLookupWindow (stuff->window, client, DixWriteAccess);
if (!pWin)
return BadWindow;
pHead = (RREventPtr *)SecurityLookupIDByType(client,
pWin->drawable.id, RREventType,
- SecurityWriteAccess);
+ DixWriteAccess);
if (stuff->enable & (RRScreenChangeNotifyMask|
RRCrtcChangeNotifyMask|
diff --git a/randr/rroutput.c b/randr/rroutput.c
index 430f8bd..33c4ba5 100644
--- a/randr/rroutput.c
+++ b/randr/rroutput.c
@@ -378,7 +378,7 @@ ProcRRGetOutputInfo (ClientPtr client)
int i, n;
REQUEST_SIZE_MATCH(xRRGetOutputInfoReq);
- output = LookupOutput(client, stuff->output, SecurityReadAccess);
+ output = LookupOutput(client, stuff->output, DixReadAccess);
if (!output)
return RRErrorBase + BadRROutput;
diff --git a/randr/rrproperty.c b/randr/rrproperty.c
index 13e8483..56bb39a 100644
--- a/randr/rrproperty.c
+++ b/randr/rrproperty.c
@@ -313,7 +313,7 @@ ProcRRListOutputProperties (ClientPtr cl
REQUEST_SIZE_MATCH(xRRListOutputPropertiesReq);
- output = LookupOutput (client, stuff->output, SecurityReadAccess);
+ output = LookupOutput (client, stuff->output, DixReadAccess);
if (!output)
return RRErrorBase + BadRROutput;
@@ -358,7 +358,7 @@ ProcRRQueryOutputProperty (ClientPtr cli
REQUEST_SIZE_MATCH(xRRQueryOutputPropertyReq);
- output = LookupOutput (client, stuff->output, SecurityReadAccess);
+ output = LookupOutput (client, stuff->output, DixReadAccess);
if (!output)
return RRErrorBase + BadRROutput;
@@ -398,7 +398,7 @@ ProcRRConfigureOutputProperty (ClientPtr
REQUEST_SIZE_MATCH(xRRConfigureOutputPropertyReq);
- output = LookupOutput (client, stuff->output, SecurityReadAccess);
+ output = LookupOutput (client, stuff->output, DixReadAccess);
if (!output)
return RRErrorBase + BadRROutput;
@@ -443,7 +443,7 @@ ProcRRChangeOutputProperty (ClientPtr cl
totalSize = len * sizeInBytes;
REQUEST_FIXED_SIZE(xRRChangeOutputPropertyReq, totalSize);
- output = LookupOutput (client, stuff->output, SecurityWriteAccess);
+ output = LookupOutput (client, stuff->output, DixWriteAccess);
if (!output)
return RRErrorBase + BadRROutput;
@@ -475,7 +475,7 @@ ProcRRDeleteOutputProperty (ClientPtr cl
REQUEST_SIZE_MATCH(xRRDeleteOutputPropertyReq);
UpdateCurrentTime();
- output = LookupOutput (client, stuff->output, SecurityWriteAccess);
+ output = LookupOutput (client, stuff->output, DixWriteAccess);
if (!output)
return RRErrorBase + BadRROutput;
@@ -504,8 +504,8 @@ ProcRRGetOutputProperty (ClientPtr clien
if (stuff->delete)
UpdateCurrentTime();
output = LookupOutput (client, stuff->output,
- stuff->delete ? SecurityWriteAccess :
- SecurityReadAccess);
+ stuff->delete ? DixWriteAccess :
+ DixReadAccess);
if (!output)
return RRErrorBase + BadRROutput;
diff --git a/randr/rrscreen.c b/randr/rrscreen.c
index 76c16b0..b4004a3 100644
--- a/randr/rrscreen.c
+++ b/randr/rrscreen.c
@@ -220,7 +220,7 @@ ProcRRGetScreenSizeRange (ClientPtr clie
REQUEST_SIZE_MATCH(xRRGetScreenInfoReq);
pWin = (WindowPtr)SecurityLookupWindow(stuff->window, client,
- SecurityReadAccess);
+ DixReadAccess);
if (!pWin)
return BadWindow;
@@ -273,7 +273,7 @@ ProcRRSetScreenSize (ClientPtr client)
REQUEST_SIZE_MATCH(xRRSetScreenSizeReq);
pWin = (WindowPtr)SecurityLookupWindow(stuff->window, client,
- SecurityReadAccess);
+ DixReadAccess);
if (!pWin)
return BadWindow;
@@ -332,7 +332,7 @@ ProcRRGetScreenResources (ClientPtr clie
REQUEST_SIZE_MATCH(xRRGetScreenResourcesReq);
pWin = (WindowPtr)SecurityLookupWindow(stuff->window, client,
- SecurityReadAccess);
+ DixReadAccess);
if (!pWin)
return BadWindow;
@@ -557,7 +557,7 @@ ProcRRGetScreenInfo (ClientPtr client)
REQUEST_SIZE_MATCH(xRRGetScreenInfoReq);
pWin = (WindowPtr)SecurityLookupWindow(stuff->window, client,
- SecurityReadAccess);
+ DixReadAccess);
if (!pWin)
return BadWindow;
@@ -731,7 +731,7 @@ ProcRRSetScreenConfig (ClientPtr client)
}
SECURITY_VERIFY_DRAWABLE(pDraw, stuff->drawable, client,
- SecurityWriteAccess);
+ DixWriteAccess);
pScreen = pDraw->pScreen;
diff --git a/render/picture.c b/render/picture.c
index a3443c2..e7901e8 100644
--- a/render/picture.c
+++ b/render/picture.c
@@ -1209,7 +1209,7 @@ ChangePicture (PicturePtr pPicture,
pAlpha = (PicturePtr) SecurityLookupIDByType(client,
pid,
PictureType,
- SecurityWriteAccess|SecurityReadAccess);
+ DixWriteAccess|DixReadAccess);
if (!pAlpha)
{
client->errorValue = pid;
@@ -1271,7 +1271,7 @@ ChangePicture (PicturePtr pPicture,
pPixmap = (PixmapPtr)SecurityLookupIDByType(client,
pid,
RT_PIXMAP,
- SecurityReadAccess);
+ DixReadAccess);
if (!pPixmap)
{
client->errorValue = pid;
diff --git a/render/render.c b/render/render.c
index e4d8d6b..51a3fa6 100644
--- a/render/render.c
+++ b/render/render.c
@@ -554,7 +554,7 @@ ProcRenderQueryPictIndexValues (ClientPt
pFormat = (PictFormatPtr) SecurityLookupIDByType (client,
stuff->format,
PictFormatType,
- SecurityReadAccess);
+ DixReadAccess);
if (!pFormat)
{
@@ -622,11 +622,11 @@ ProcRenderCreatePicture (ClientPtr clien
LEGAL_NEW_RESOURCE(stuff->pid, client);
SECURITY_VERIFY_DRAWABLE(pDrawable, stuff->drawable, client,
- SecurityWriteAccess);
+ DixWriteAccess);
pFormat = (PictFormatPtr) SecurityLookupIDByType (client,
stuff->format,
PictFormatType,
- SecurityReadAccess);
+ DixReadAccess);
if (!pFormat)
{
client->errorValue = stuff->format;
@@ -660,7 +660,7 @@ ProcRenderChangePicture (ClientPtr clien
int len;
REQUEST_AT_LEAST_SIZE(xRenderChangePictureReq);
- VERIFY_PICTURE (pPicture, stuff->picture, client, SecurityWriteAccess,
+ VERIFY_PICTURE (pPicture, stuff->picture, client, DixWriteAccess,
RenderErrBase + BadPicture);
len = client->req_len - (sizeof(xRenderChangePictureReq) >> 2);
@@ -680,7 +680,7 @@ ProcRenderSetPictureClipRectangles (Clie
int result;
REQUEST_AT_LEAST_SIZE(xRenderSetPictureClipRectanglesReq);
- VERIFY_PICTURE (pPicture, stuff->picture, client, SecurityWriteAccess,
+ VERIFY_PICTURE (pPicture, stuff->picture, client, DixWriteAccess,
RenderErrBase + BadPicture);
if (!pPicture->pDrawable)
return BadDrawable;
@@ -706,7 +706,7 @@ ProcRenderFreePicture (ClientPtr client)
REQUEST_SIZE_MATCH(xRenderFreePictureReq);
- VERIFY_PICTURE (pPicture, stuff->picture, client, SecurityDestroyAccess,
+ VERIFY_PICTURE (pPicture, stuff->picture, client, DixDestroyAccess,
RenderErrBase + BadPicture);
FreeResource (stuff->picture, RT_NONE);
return(client->noClientException);
@@ -736,13 +736,13 @@ ProcRenderComposite (ClientPtr client)
client->errorValue = stuff->op;
return BadValue;
}
- VERIFY_PICTURE (pDst, stuff->dst, client, SecurityWriteAccess,
+ VERIFY_PICTURE (pDst, stuff->dst, client, DixWriteAccess,
RenderErrBase + BadPicture);
if (!pDst->pDrawable)
return BadDrawable;
- VERIFY_PICTURE (pSrc, stuff->src, client, SecurityReadAccess,
+ VERIFY_PICTURE (pSrc, stuff->src, client, DixReadAccess,
RenderErrBase + BadPicture);
- VERIFY_ALPHA (pMask, stuff->mask, client, SecurityReadAccess,
+ VERIFY_ALPHA (pMask, stuff->mask, client, DixReadAccess,
RenderErrBase + BadPicture);
if ((pSrc->pDrawable && pSrc->pDrawable->pScreen != pDst->pDrawable->pScreen) ||
(pMask && pMask->pDrawable && pDst->pDrawable->pScreen != pMask->pDrawable->pScreen))
@@ -782,9 +782,9 @@ ProcRenderTrapezoids (ClientPtr client)
client->errorValue = stuff->op;
return BadValue;
}
- VERIFY_PICTURE (pSrc, stuff->src, client, SecurityReadAccess,
+ VERIFY_PICTURE (pSrc, stuff->src, client, DixReadAccess,
RenderErrBase + BadPicture);
- VERIFY_PICTURE (pDst, stuff->dst, client, SecurityWriteAccess,
+ VERIFY_PICTURE (pDst, stuff->dst, client, DixWriteAccess,
RenderErrBase + BadPicture);
if (!pDst->pDrawable)
return BadDrawable;
@@ -795,7 +795,7 @@ ProcRenderTrapezoids (ClientPtr client)
pFormat = (PictFormatPtr) SecurityLookupIDByType (client,
stuff->maskFormat,
PictFormatType,
- SecurityReadAccess);
+ DixReadAccess);
if (!pFormat)
{
client->errorValue = stuff->maskFormat;
@@ -829,9 +829,9 @@ ProcRenderTriangles (ClientPtr client)
client->errorValue = stuff->op;
return BadValue;
}
- VERIFY_PICTURE (pSrc, stuff->src, client, SecurityReadAccess,
+ VERIFY_PICTURE (pSrc, stuff->src, client, DixReadAccess,
RenderErrBase + BadPicture);
- VERIFY_PICTURE (pDst, stuff->dst, client, SecurityWriteAccess,
+ VERIFY_PICTURE (pDst, stuff->dst, client, DixWriteAccess,
RenderErrBase + BadPicture);
if (!pDst->pDrawable)
return BadDrawable;
@@ -842,7 +842,7 @@ ProcRenderTriangles (ClientPtr client)
pFormat = (PictFormatPtr) SecurityLookupIDByType (client,
stuff->maskFormat,
PictFormatType,
- SecurityReadAccess);
+ DixReadAccess);
if (!pFormat)
{
client->errorValue = stuff->maskFormat;
@@ -876,9 +876,9 @@ ProcRenderTriStrip (ClientPtr client)
client->errorValue = stuff->op;
return BadValue;
}
- VERIFY_PICTURE (pSrc, stuff->src, client, SecurityReadAccess,
+ VERIFY_PICTURE (pSrc, stuff->src, client, DixReadAccess,
RenderErrBase + BadPicture);
- VERIFY_PICTURE (pDst, stuff->dst, client, SecurityWriteAccess,
+ VERIFY_PICTURE (pDst, stuff->dst, client, DixWriteAccess,
RenderErrBase + BadPicture);
if (!pDst->pDrawable)
return BadDrawable;
@@ -889,7 +889,7 @@ ProcRenderTriStrip (ClientPtr client)
pFormat = (PictFormatPtr) SecurityLookupIDByType (client,
stuff->maskFormat,
PictFormatType,
- SecurityReadAccess);
+ DixReadAccess);
if (!pFormat)
{
client->errorValue = stuff->maskFormat;
@@ -923,9 +923,9 @@ ProcRenderTriFan (ClientPtr client)
client->errorValue = stuff->op;
return BadValue;
}
- VERIFY_PICTURE (pSrc, stuff->src, client, SecurityReadAccess,
+ VERIFY_PICTURE (pSrc, stuff->src, client, DixReadAccess,
RenderErrBase + BadPicture);
- VERIFY_PICTURE (pDst, stuff->dst, client, SecurityWriteAccess,
+ VERIFY_PICTURE (pDst, stuff->dst, client, DixWriteAccess,
RenderErrBase + BadPicture);
if (!pDst->pDrawable)
return BadDrawable;
@@ -936,7 +936,7 @@ ProcRenderTriFan (ClientPtr client)
pFormat = (PictFormatPtr) SecurityLookupIDByType (client,
stuff->maskFormat,
PictFormatType,
- SecurityReadAccess);
+ DixReadAccess);
if (!pFormat)
{
client->errorValue = stuff->maskFormat;
@@ -988,7 +988,7 @@ ProcRenderCreateGlyphSet (ClientPtr clie
format = (PictFormatPtr) SecurityLookupIDByType (client,
stuff->format,
PictFormatType,
- SecurityReadAccess);
+ DixReadAccess);
if (!format)
{
client->errorValue = stuff->format;
@@ -1036,7 +1036,7 @@ ProcRenderReferenceGlyphSet (ClientPtr c
glyphSet = (GlyphSetPtr) SecurityLookupIDByType (client,
stuff->existing,
GlyphSetType,
- SecurityWriteAccess);
+ DixWriteAccess);
if (!glyphSet)
{
client->errorValue = stuff->existing;
@@ -1061,7 +1061,7 @@ ProcRenderFreeGlyphSet (ClientPtr client
glyphSet = (GlyphSetPtr) SecurityLookupIDByType (client,
stuff->glyphset,
GlyphSetType,
- SecurityDestroyAccess);
+ DixDestroyAccess);
if (!glyphSet)
{
client->errorValue = stuff->glyphset;
@@ -1095,7 +1095,7 @@ ProcRenderAddGlyphs (ClientPtr client)
glyphSet = (GlyphSetPtr) SecurityLookupIDByType (client,
stuff->glyphset,
GlyphSetType,
- SecurityWriteAccess);
+ DixWriteAccess);
if (!glyphSet)
{
client->errorValue = stuff->glyphset;
@@ -1196,7 +1196,7 @@ ProcRenderFreeGlyphs (ClientPtr client)
glyphSet = (GlyphSetPtr) SecurityLookupIDByType (client,
stuff->glyphset,
GlyphSetType,
- SecurityWriteAccess);
+ DixWriteAccess);
if (!glyphSet)
{
client->errorValue = stuff->glyphset;
@@ -1251,9 +1251,9 @@ ProcRenderCompositeGlyphs (ClientPtr cli
client->errorValue = stuff->op;
return BadValue;
}
- VERIFY_PICTURE (pSrc, stuff->src, client, SecurityReadAccess,
+ VERIFY_PICTURE (pSrc, stuff->src, client, DixReadAccess,
RenderErrBase + BadPicture);
- VERIFY_PICTURE (pDst, stuff->dst, client, SecurityWriteAccess,
+ VERIFY_PICTURE (pDst, stuff->dst, client, DixWriteAccess,
RenderErrBase + BadPicture);
if (!pDst->pDrawable)
return BadDrawable;
@@ -1264,7 +1264,7 @@ ProcRenderCompositeGlyphs (ClientPtr cli
pFormat = (PictFormatPtr) SecurityLookupIDByType (client,
stuff->maskFormat,
PictFormatType,
- SecurityReadAccess);
+ DixReadAccess);
if (!pFormat)
{
client->errorValue = stuff->maskFormat;
@@ -1277,7 +1277,7 @@ ProcRenderCompositeGlyphs (ClientPtr cli
glyphSet = (GlyphSetPtr) SecurityLookupIDByType (client,
stuff->glyphset,
GlyphSetType,
- SecurityReadAccess);
+ DixReadAccess);
if (!glyphSet)
{
client->errorValue = stuff->glyphset;
@@ -1339,7 +1339,7 @@ ProcRenderCompositeGlyphs (ClientPtr cli
glyphSet = (GlyphSetPtr) SecurityLookupIDByType (client,
gs,
GlyphSetType,
- SecurityReadAccess);
+ DixReadAccess);
if (!glyphSet)
{
client->errorValue = gs;
@@ -1420,7 +1420,7 @@ ProcRenderFillRectangles (ClientPtr clie
client->errorValue = stuff->op;
return BadValue;
}
- VERIFY_PICTURE (pDst, stuff->dst, client, SecurityWriteAccess,
+ VERIFY_PICTURE (pDst, stuff->dst, client, DixWriteAccess,
RenderErrBase + BadPicture);
if (!pDst->pDrawable)
return BadDrawable;
@@ -1486,7 +1486,7 @@ ProcRenderCreateCursor (ClientPtr client
REQUEST_SIZE_MATCH (xRenderCreateCursorReq);
LEGAL_NEW_RESOURCE(stuff->cid, client);
- VERIFY_PICTURE (pSrc, stuff->src, client, SecurityReadAccess,
+ VERIFY_PICTURE (pSrc, stuff->src, client, DixReadAccess,
RenderErrBase + BadPicture);
if (!pSrc->pDrawable)
return BadDrawable;
@@ -1668,7 +1668,7 @@ ProcRenderSetPictureTransform (ClientPtr
int result;
REQUEST_SIZE_MATCH(xRenderSetPictureTransformReq);
- VERIFY_PICTURE (pPicture, stuff->picture, client, SecurityWriteAccess,
+ VERIFY_PICTURE (pPicture, stuff->picture, client, DixWriteAccess,
RenderErrBase + BadPicture);
result = SetPictureTransform (pPicture, (PictTransform *) &stuff->transform);
if (client->noClientException != Success)
@@ -1694,7 +1694,7 @@ ProcRenderQueryFilters (ClientPtr client
char *names;
REQUEST_SIZE_MATCH(xRenderQueryFiltersReq);
- SECURITY_VERIFY_DRAWABLE(pDrawable, stuff->drawable, client, SecurityReadAccess);
+ SECURITY_VERIFY_DRAWABLE(pDrawable, stuff->drawable, client, DixReadAccess);
pScreen = pDrawable->pScreen;
nbytesName = 0;
@@ -1797,7 +1797,7 @@ ProcRenderSetPictureFilter (ClientPtr cl
char *name;
REQUEST_AT_LEAST_SIZE (xRenderSetPictureFilterReq);
- VERIFY_PICTURE (pPicture, stuff->picture, client, SecurityWriteAccess,
+ VERIFY_PICTURE (pPicture, stuff->picture, client, DixWriteAccess,
RenderErrBase + BadPicture);
name = (char *) (stuff + 1);
params = (xFixed *) (name + ((stuff->nbytes + 3) & ~3));
@@ -1831,7 +1831,7 @@ ProcRenderCreateAnimCursor (ClientPtr cl
for (i = 0; i < ncursor; i++)
{
cursors[i] = (CursorPtr)SecurityLookupIDByType(client, elt->cursor,
- RT_CURSOR, SecurityReadAccess);
+ RT_CURSOR, DixReadAccess);
if (!cursors[i])
{
xfree (cursors);
@@ -1859,7 +1859,7 @@ ProcRenderAddTraps (ClientPtr client)
REQUEST(xRenderAddTrapsReq);
REQUEST_AT_LEAST_SIZE(xRenderAddTrapsReq);
- VERIFY_PICTURE (pPicture, stuff->picture, client, SecurityWriteAccess,
+ VERIFY_PICTURE (pPicture, stuff->picture, client, DixWriteAccess,
RenderErrBase + BadPicture);
if (!pPicture->pDrawable)
return BadDrawable;
@@ -2614,7 +2614,7 @@ PanoramiXRenderCreatePicture (ClientPtr
REQUEST_AT_LEAST_SIZE(xRenderCreatePictureReq);
if(!(refDraw = (PanoramiXRes *)SecurityLookupIDByClass(
- client, stuff->drawable, XRC_DRAWABLE, SecurityWriteAccess)))
+ client, stuff->drawable, XRC_DRAWABLE, DixWriteAccess)))
return BadDrawable;
if(!(newPict = (PanoramiXRes *) xalloc(sizeof(PanoramiXRes))))
return BadAlloc;
@@ -2656,7 +2656,7 @@ PanoramiXRenderChangePicture (ClientPtr
REQUEST_AT_LEAST_SIZE(xChangeWindowAttributesReq);
- VERIFY_XIN_PICTURE(pict, stuff->picture, client, SecurityWriteAccess,
+ VERIFY_XIN_PICTURE(pict, stuff->picture, client, DixWriteAccess,
RenderErrBase + BadPicture);
FOR_NSCREENS_BACKWARD(j) {
@@ -2677,7 +2677,7 @@ PanoramiXRenderSetPictureClipRectangles
REQUEST_AT_LEAST_SIZE(xRenderSetPictureClipRectanglesReq);
- VERIFY_XIN_PICTURE(pict, stuff->picture, client, SecurityWriteAccess,
+ VERIFY_XIN_PICTURE(pict, stuff->picture, client, DixWriteAccess,
RenderErrBase + BadPicture);
FOR_NSCREENS_BACKWARD(j) {
@@ -2698,7 +2698,7 @@ PanoramiXRenderSetPictureTransform (Clie
REQUEST_AT_LEAST_SIZE(xRenderSetPictureTransformReq);
- VERIFY_XIN_PICTURE(pict, stuff->picture, client, SecurityWriteAccess,
+ VERIFY_XIN_PICTURE(pict, stuff->picture, client, DixWriteAccess,
RenderErrBase + BadPicture);
FOR_NSCREENS_BACKWARD(j) {
@@ -2719,7 +2719,7 @@ PanoramiXRenderSetPictureFilter (ClientP
REQUEST_AT_LEAST_SIZE(xRenderSetPictureFilterReq);
- VERIFY_XIN_PICTURE(pict, stuff->picture, client, SecurityWriteAccess,
+ VERIFY_XIN_PICTURE(pict, stuff->picture, client, DixWriteAccess,
RenderErrBase + BadPicture);
FOR_NSCREENS_BACKWARD(j) {
@@ -2742,7 +2742,7 @@ PanoramiXRenderFreePicture (ClientPtr cl
client->errorValue = stuff->picture;
- VERIFY_XIN_PICTURE(pict, stuff->picture, client, SecurityDestroyAccess,
+ VERIFY_XIN_PICTURE(pict, stuff->picture, client, DixDestroyAccess,
RenderErrBase + BadPicture);
@@ -2768,11 +2768,11 @@ PanoramiXRenderComposite (ClientPtr clie
REQUEST_SIZE_MATCH(xRenderCompositeReq);
- VERIFY_XIN_PICTURE (src, stuff->src, client, SecurityReadAccess,
+ VERIFY_XIN_PICTURE (src, stuff->src, client, DixReadAccess,
RenderErrBase + BadPicture);
- VERIFY_XIN_ALPHA (msk, stuff->mask, client, SecurityReadAccess,
+ VERIFY_XIN_ALPHA (msk, stuff->mask, client, DixReadAccess,
RenderErrBase + BadPicture);
- VERIFY_XIN_PICTURE (dst, stuff->dst, client, SecurityWriteAccess,
+ VERIFY_XIN_PICTURE (dst, stuff->dst, client, DixWriteAccess,
RenderErrBase + BadPicture);
orig = *stuff;
@@ -2816,9 +2816,9 @@ PanoramiXRenderCompositeGlyphs (ClientPt
INT16 xSrc, ySrc;
REQUEST_AT_LEAST_SIZE(xRenderCompositeGlyphsReq);
- VERIFY_XIN_PICTURE (src, stuff->src, client, SecurityReadAccess,
+ VERIFY_XIN_PICTURE (src, stuff->src, client, DixReadAccess,
RenderErrBase + BadPicture);
- VERIFY_XIN_PICTURE (dst, stuff->dst, client, SecurityWriteAccess,
+ VERIFY_XIN_PICTURE (dst, stuff->dst, client, DixWriteAccess,
RenderErrBase + BadPicture);
if (client->req_len << 2 >= (sizeof (xRenderCompositeGlyphsReq) +
@@ -2859,7 +2859,7 @@ PanoramiXRenderFillRectangles (ClientPtr
int extra_len;
REQUEST_AT_LEAST_SIZE (xRenderFillRectanglesReq);
- VERIFY_XIN_PICTURE (dst, stuff->dst, client, SecurityWriteAccess,
+ VERIFY_XIN_PICTURE (dst, stuff->dst, client, DixWriteAccess,
RenderErrBase + BadPicture);
extra_len = (client->req_len << 2) - sizeof (xRenderFillRectanglesReq);
if (extra_len &&
@@ -2906,9 +2906,9 @@ PanoramiXRenderTrapezoids(ClientPtr clie
REQUEST_AT_LEAST_SIZE (xRenderTrapezoidsReq);
- VERIFY_XIN_PICTURE (src, stuff->src, client, SecurityReadAccess,
+ VERIFY_XIN_PICTURE (src, stuff->src, client, DixReadAccess,
RenderErrBase + BadPicture);
- VERIFY_XIN_PICTURE (dst, stuff->dst, client, SecurityWriteAccess,
+ VERIFY_XIN_PICTURE (dst, stuff->dst, client, DixWriteAccess,
RenderErrBase + BadPicture);
extra_len = (client->req_len << 2) - sizeof (xRenderTrapezoidsReq);
@@ -2968,9 +2968,9 @@ PanoramiXRenderTriangles(ClientPtr clien
REQUEST_AT_LEAST_SIZE (xRenderTrianglesReq);
- VERIFY_XIN_PICTURE (src, stuff->src, client, SecurityReadAccess,
+ VERIFY_XIN_PICTURE (src, stuff->src, client, DixReadAccess,
RenderErrBase + BadPicture);
- VERIFY_XIN_PICTURE (dst, stuff->dst, client, SecurityWriteAccess,
+ VERIFY_XIN_PICTURE (dst, stuff->dst, client, DixWriteAccess,
RenderErrBase + BadPicture);
extra_len = (client->req_len << 2) - sizeof (xRenderTrianglesReq);
@@ -3026,9 +3026,9 @@ PanoramiXRenderTriStrip(ClientPtr client
REQUEST_AT_LEAST_SIZE (xRenderTriStripReq);
- VERIFY_XIN_PICTURE (src, stuff->src, client, SecurityReadAccess,
+ VERIFY_XIN_PICTURE (src, stuff->src, client, DixReadAccess,
RenderErrBase + BadPicture);
- VERIFY_XIN_PICTURE (dst, stuff->dst, client, SecurityWriteAccess,
+ VERIFY_XIN_PICTURE (dst, stuff->dst, client, DixWriteAccess,
RenderErrBase + BadPicture);
extra_len = (client->req_len << 2) - sizeof (xRenderTriStripReq);
@@ -3080,9 +3080,9 @@ PanoramiXRenderTriFan(ClientPtr client)
REQUEST_AT_LEAST_SIZE (xRenderTriFanReq);
- VERIFY_XIN_PICTURE (src, stuff->src, client, SecurityReadAccess,
+ VERIFY_XIN_PICTURE (src, stuff->src, client, DixReadAccess,
RenderErrBase + BadPicture);
- VERIFY_XIN_PICTURE (dst, stuff->dst, client, SecurityWriteAccess,
+ VERIFY_XIN_PICTURE (dst, stuff->dst, client, DixWriteAccess,
RenderErrBase + BadPicture);
extra_len = (client->req_len << 2) - sizeof (xRenderTriFanReq);
@@ -3136,7 +3136,7 @@ PanoramiXRenderColorTrapezoids(ClientPtr
REQUEST_AT_LEAST_SIZE (xRenderColorTrapezoidsReq);
- VERIFY_XIN_PICTURE (dst, stuff->dst, client, SecurityWriteAccess,
+ VERIFY_XIN_PICTURE (dst, stuff->dst, client, DixWriteAccess,
RenderErrBase + BadPicture);
extra_len = (client->req_len << 2) - sizeof (xRenderColorTrapezoidsReq);
@@ -3180,7 +3180,7 @@ PanoramiXRenderColorTriangles(ClientPtr
REQUEST_AT_LEAST_SIZE (xRenderColorTrianglesReq);
- VERIFY_XIN_PICTURE (dst, stuff->dst, client, SecurityWriteAccess,
+ VERIFY_XIN_PICTURE (dst, stuff->dst, client, DixWriteAccess,
RenderErrBase + BadPicture);
extra_len = (client->req_len << 2) - sizeof (xRenderColorTrianglesReq);
@@ -3226,7 +3226,7 @@ PanoramiXRenderAddTraps (ClientPtr clien
INT16 x_off, y_off;
REQUEST_AT_LEAST_SIZE (xRenderAddTrapsReq);
- VERIFY_XIN_PICTURE (picture, stuff->picture, client, SecurityWriteAccess,
+ VERIFY_XIN_PICTURE (picture, stuff->picture, client, DixWriteAccess,
RenderErrBase + BadPicture);
extra_len = (client->req_len << 2) - sizeof (xRenderAddTrapsReq);
if (extra_len &&
diff --git a/xfixes/cursor.c b/xfixes/cursor.c
index c75e744..21dbcc2 100755
--- a/xfixes/cursor.c
+++ b/xfixes/cursor.c
@@ -242,7 +242,7 @@ ProcXFixesSelectCursorInput (ClientPtr c
REQUEST_SIZE_MATCH (xXFixesSelectCursorInputReq);
pWin = (WindowPtr)SecurityLookupWindow(stuff->window, client,
- SecurityReadAccess);
+ DixReadAccess);
if (!pWin)
return(BadWindow);
if (stuff->eventMask & ~CursorAllEvents)
@@ -415,7 +415,7 @@ ProcXFixesSetCursorName (ClientPtr clien
Atom atom;
REQUEST_AT_LEAST_SIZE(xXFixesSetCursorNameReq);
- VERIFY_CURSOR(pCursor, stuff->cursor, client, SecurityWriteAccess);
+ VERIFY_CURSOR(pCursor, stuff->cursor, client, DixWriteAccess);
tchar = (char *) &stuff[1];
atom = MakeAtom (tchar, stuff->nbytes, TRUE);
if (atom == BAD_RESOURCE)
@@ -448,7 +448,7 @@ ProcXFixesGetCursorName (ClientPtr clien
int len;
REQUEST_SIZE_MATCH(xXFixesGetCursorNameReq);
- VERIFY_CURSOR(pCursor, stuff->cursor, client, SecurityReadAccess);
+ VERIFY_CURSOR(pCursor, stuff->cursor, client, DixReadAccess);
if (pCursor->name)
str = NameForAtom (pCursor->name);
else
@@ -679,8 +679,8 @@ ProcXFixesChangeCursor (ClientPtr client
REQUEST(xXFixesChangeCursorReq);
REQUEST_SIZE_MATCH(xXFixesChangeCursorReq);
- VERIFY_CURSOR (pSource, stuff->source, client, SecurityReadAccess);
- VERIFY_CURSOR (pDestination, stuff->destination, client, SecurityWriteAccess);
+ VERIFY_CURSOR (pSource, stuff->source, client, DixReadAccess);
+ VERIFY_CURSOR (pDestination, stuff->destination, client, DixWriteAccess);
ReplaceCursor (pSource, TestForCursor, (pointer) pDestination);
return (client->noClientException);
@@ -714,7 +714,7 @@ ProcXFixesChangeCursorByName (ClientPtr
REQUEST(xXFixesChangeCursorByNameReq);
REQUEST_FIXED_SIZE(xXFixesChangeCursorByNameReq, stuff->nbytes);
- VERIFY_CURSOR(pSource, stuff->source, client, SecurityReadAccess);
+ VERIFY_CURSOR(pSource, stuff->source, client, DixReadAccess);
tchar = (char *) &stuff[1];
name = MakeAtom (tchar, stuff->nbytes, FALSE);
if (name)
diff --git a/xfixes/region.c b/xfixes/region.c
index 68c7015..a004fc0 100755
--- a/xfixes/region.c
+++ b/xfixes/region.c
@@ -118,7 +118,7 @@ ProcXFixesCreateRegionFromBitmap (Client
pPixmap = (PixmapPtr) SecurityLookupIDByType (client, stuff->bitmap,
RT_PIXMAP,
- SecurityReadAccess);
+ DixReadAccess);
if (!pPixmap)
{
client->errorValue = stuff->bitmap;
@@ -225,7 +225,7 @@ ProcXFixesCreateRegionFromGC (ClientPtr
REQUEST_SIZE_MATCH (xXFixesCreateRegionFromGCReq);
LEGAL_NEW_RESOURCE (stuff->region, client);
- SECURITY_VERIFY_GC(pGC, stuff->gc, client, SecurityReadAccess);
+ SECURITY_VERIFY_GC(pGC, stuff->gc, client, DixReadAccess);
switch (pGC->clientClipType) {
case CT_PIXMAP:
@@ -273,7 +273,7 @@ ProcXFixesCreateRegionFromPicture (Clien
REQUEST_SIZE_MATCH (xXFixesCreateRegionFromPictureReq);
LEGAL_NEW_RESOURCE (stuff->region, client);
- VERIFY_PICTURE(pPicture, stuff->picture, client, SecurityReadAccess,
+ VERIFY_PICTURE(pPicture, stuff->picture, client, DixReadAccess,
RenderErrBase + BadPicture);
switch (pPicture->clientClipType) {
@@ -321,7 +321,7 @@ ProcXFixesDestroyRegion (ClientPtr clien
RegionPtr pRegion;
REQUEST_SIZE_MATCH(xXFixesDestroyRegionReq);
- VERIFY_REGION(pRegion, stuff->region, client, SecurityWriteAccess);
+ VERIFY_REGION(pRegion, stuff->region, client, DixWriteAccess);
FreeResource (stuff->region, RT_NONE);
return(client->noClientException);
}
@@ -346,7 +346,7 @@ ProcXFixesSetRegion (ClientPtr client)
REQUEST (xXFixesSetRegionReq);
REQUEST_AT_LEAST_SIZE(xXFixesSetRegionReq);
- VERIFY_REGION(pRegion, stuff->region, client, SecurityWriteAccess);
+ VERIFY_REGION(pRegion, stuff->region, client, DixWriteAccess);
things = (client->req_len << 2) - sizeof (xXFixesCreateRegionReq);
if (things & 4)
@@ -384,8 +384,8 @@ ProcXFixesCopyRegion (ClientPtr client)
RegionPtr pSource, pDestination;
REQUEST (xXFixesCopyRegionReq);
- VERIFY_REGION(pSource, stuff->source, client, SecurityReadAccess);
- VERIFY_REGION(pDestination, stuff->destination, client, SecurityWriteAccess);
+ VERIFY_REGION(pSource, stuff->source, client, DixReadAccess);
+ VERIFY_REGION(pDestination, stuff->destination, client, DixWriteAccess);
if (!REGION_COPY(pScreen, pDestination, pSource))
return BadAlloc;
@@ -414,9 +414,9 @@ ProcXFixesCombineRegion (ClientPtr clien
REQUEST (xXFixesCombineRegionReq);
REQUEST_SIZE_MATCH (xXFixesCombineRegionReq);
- VERIFY_REGION(pSource1, stuff->source1, client, SecurityReadAccess);
- VERIFY_REGION(pSource2, stuff->source2, client, SecurityReadAccess);
- VERIFY_REGION(pDestination, stuff->destination, client, SecurityWriteAccess);
+ VERIFY_REGION(pSource1, stuff->source1, client, DixReadAccess);
+ VERIFY_REGION(pSource2, stuff->source2, client, DixReadAccess);
+ VERIFY_REGION(pDestination, stuff->destination, client, DixWriteAccess);
switch (stuff->xfixesReqType) {
case X_XFixesUnionRegion:
@@ -461,8 +461,8 @@ ProcXFixesInvertRegion (ClientPtr client
REQUEST(xXFixesInvertRegionReq);
REQUEST_SIZE_MATCH(xXFixesInvertRegionReq);
- VERIFY_REGION(pSource, stuff->source, client, SecurityReadAccess);
- VERIFY_REGION(pDestination, stuff->destination, client, SecurityWriteAccess);
+ VERIFY_REGION(pSource, stuff->source, client, DixReadAccess);
+ VERIFY_REGION(pDestination, stuff->destination, client, DixWriteAccess);
/* Compute bounds, limit to 16 bits */
bounds.x1 = stuff->x;
@@ -509,7 +509,7 @@ ProcXFixesTranslateRegion (ClientPtr cli
REQUEST(xXFixesTranslateRegionReq);
REQUEST_SIZE_MATCH(xXFixesTranslateRegionReq);
- VERIFY_REGION(pRegion, stuff->region, client, SecurityWriteAccess);
+ VERIFY_REGION(pRegion, stuff->region, client, DixWriteAccess);
REGION_TRANSLATE(pScreen, pRegion, stuff->dx, stuff->dy);
return (client->noClientException);
@@ -536,8 +536,8 @@ ProcXFixesRegionExtents (ClientPtr clien
REQUEST(xXFixesRegionExtentsReq);
REQUEST_SIZE_MATCH(xXFixesRegionExtentsReq);
- VERIFY_REGION(pSource, stuff->source, client, SecurityReadAccess);
- VERIFY_REGION(pDestination, stuff->destination, client, SecurityWriteAccess);
+ VERIFY_REGION(pSource, stuff->source, client, DixReadAccess);
+ VERIFY_REGION(pDestination, stuff->destination, client, DixWriteAccess);
REGION_RESET (0, pDestination, REGION_EXTENTS (0, pSource));
@@ -569,7 +569,7 @@ ProcXFixesFetchRegion (ClientPtr client)
REQUEST(xXFixesFetchRegionReq);
REQUEST_SIZE_MATCH(xXFixesFetchRegionReq);
- VERIFY_REGION(pRegion, stuff->region, client, SecurityReadAccess);
+ VERIFY_REGION(pRegion, stuff->region, client, DixReadAccess);
pExtent = REGION_EXTENTS (0, pRegion);
pBox = REGION_RECTS (pRegion);
@@ -633,8 +633,8 @@ ProcXFixesSetGCClipRegion (ClientPtr cli
REQUEST(xXFixesSetGCClipRegionReq);
REQUEST_SIZE_MATCH(xXFixesSetGCClipRegionReq);
- SECURITY_VERIFY_GC(pGC, stuff->gc, client, SecurityWriteAccess);
- VERIFY_REGION_OR_NONE (pRegion, stuff->region, client, SecurityReadAccess);
+ SECURITY_VERIFY_GC(pGC, stuff->gc, client, DixWriteAccess);
+ VERIFY_REGION_OR_NONE (pRegion, stuff->region, client, DixReadAccess);
if (pRegion)
{
@@ -685,7 +685,7 @@ ProcXFixesSetWindowShapeRegion (ClientPt
client->errorValue = stuff->dest;
return BadWindow;
}
- VERIFY_REGION_OR_NONE(pRegion, stuff->region, client, SecurityWriteAccess);
+ VERIFY_REGION_OR_NONE(pRegion, stuff->region, client, DixWriteAccess);
pScreen = pWin->drawable.pScreen;
switch (stuff->destKind) {
case ShapeBounding:
@@ -775,11 +775,11 @@ ProcXFixesSetPictureClipRegion (ClientPt
REQUEST(xXFixesSetPictureClipRegionReq);
REQUEST_SIZE_MATCH (xXFixesSetPictureClipRegionReq);
- VERIFY_PICTURE(pPicture, stuff->picture, client, SecurityWriteAccess,
+ VERIFY_PICTURE(pPicture, stuff->picture, client, DixWriteAccess,
RenderErrBase + BadPicture);
pScreen = pPicture->pDrawable->pScreen;
ps = GetPictureScreen (pScreen);
- VERIFY_REGION_OR_NONE(pRegion, stuff->region, client, SecurityReadAccess);
+ VERIFY_REGION_OR_NONE(pRegion, stuff->region, client, DixReadAccess);
return SetPictureClipRegion (pPicture, stuff->xOrigin, stuff->yOrigin,
pRegion);
@@ -815,8 +815,8 @@ ProcXFixesExpandRegion (ClientPtr client
int i;
REQUEST_SIZE_MATCH (xXFixesExpandRegionReq);
- VERIFY_REGION(pSource, stuff->source, client, SecurityReadAccess);
- VERIFY_REGION(pDestination, stuff->destination, client, SecurityWriteAccess);
+ VERIFY_REGION(pSource, stuff->source, client, DixReadAccess);
+ VERIFY_REGION(pDestination, stuff->destination, client, DixWriteAccess);
nBoxes = REGION_NUM_RECTS(pSource);
pSrc = REGION_RECTS(pSource);
diff --git a/xfixes/saveset.c b/xfixes/saveset.c
index 9ebf245..9ad2627 100755
--- a/xfixes/saveset.c
+++ b/xfixes/saveset.c
@@ -38,7 +38,7 @@ ProcXFixesChangeSaveSet(ClientPtr client
REQUEST_SIZE_MATCH(xXFixesChangeSaveSetReq);
pWin = (WindowPtr)SecurityLookupWindow(stuff->window, client,
- SecurityReadAccess);
+ DixReadAccess);
if (!pWin)
return(BadWindow);
if (client->clientAsMask == (CLIENT_BITS(pWin->drawable.id)))
diff --git a/xfixes/select.c b/xfixes/select.c
index 4c7a49d..a718715 100755
--- a/xfixes/select.c
+++ b/xfixes/select.c
@@ -196,7 +196,7 @@ ProcXFixesSelectSelectionInput (ClientPt
REQUEST_SIZE_MATCH (xXFixesSelectSelectionInputReq);
pWin = (WindowPtr)SecurityLookupWindow(stuff->window, client,
- SecurityReadAccess);
+ DixReadAccess);
if (!pWin)
return(BadWindow);
if (stuff->eventMask & ~SelectionAllEvents)
diff-tree b88ad820fac81d0dfd557a384bf0406e8893e7af (from 81281cb298a5825bc7a2e692375a86199293bbbe)
Author: Alan Hourihane <alanh at fairlite.demon.co.uk>
Date: Wed Dec 13 12:13:11 2006 +0000
Set Int10Current->Tag for the linux native int10 module
Fixes bug #9296
(cherry picked from 731952c561a3972d09d1315f4fd31466e459ccb9 commit)
diff --git a/hw/xfree86/int10/generic.c b/hw/xfree86/int10/generic.c
index 46a1179..d863727 100644
--- a/hw/xfree86/int10/generic.c
+++ b/hw/xfree86/int10/generic.c
@@ -98,7 +98,7 @@ xf86ExtendedInitInt10(int entityIndex, i
base = INTPriv(pInt)->base = xnfalloc(SYS_BIOS);
pvp = xf86GetPciInfoForEntity(entityIndex);
- if (pvp) pInt->Tag = ((pciConfigPtr)(pvp->thisCard))->tag;
+ if (pvp) pInt->Tag = pciTag(pvp->bus, pvp->device, pvp->func);
/*
* we need to map video RAM MMIO as some chipsets map mmio
diff --git a/hw/xfree86/os-support/linux/int10/linux.c b/hw/xfree86/os-support/linux/int10/linux.c
index 6c8b230..dd1637a 100644
--- a/hw/xfree86/os-support/linux/int10/linux.c
+++ b/hw/xfree86/os-support/linux/int10/linux.c
@@ -90,6 +90,7 @@ xf86ExtendedInitInt10(int entityIndex, i
legacyVGARec vga;
xf86int10BiosLocation bios;
Bool videoBiosMapped = FALSE;
+ pciVideoPtr pvp;
if (int10Generation != serverGeneration) {
counter = 0;
@@ -151,6 +152,8 @@ xf86ExtendedInitInt10(int entityIndex, i
pInt = (xf86Int10InfoPtr)xnfcalloc(1, sizeof(xf86Int10InfoRec));
pInt->scrnIndex = screen;
pInt->entityIndex = entityIndex;
+ pvp = xf86GetPciInfoForEntity(entityIndex);
+ if (pvp) pInt->Tag = pciTag(pvp->bus, pvp->device, pvp->func);
if (!xf86Int10ExecSetup(pInt))
goto error0;
pInt->mem = &linuxMem;
diff-tree fb6d676de5aa606d943715437a12a68d9a41f386 (from 7b90944258eba66b61328480759833ad7589bcca)
Author: Eamon Walsh <ewalsh at moss-huskies.epoch.ncsc.mil>
Date: Tue Dec 12 16:17:51 2006 -0500
Add xserver object class to list of object classes.
diff --git a/Xext/xselinux.c b/Xext/xselinux.c
index 0de209d..41d01e4 100644
--- a/Xext/xselinux.c
+++ b/Xext/xselinux.c
@@ -152,7 +152,8 @@ static security_class_t sClasses[] = {
SECCLASS_COLORMAP,
SECCLASS_PROPERTY,
SECCLASS_XCLIENT,
- SECCLASS_XINPUT
+ SECCLASS_XINPUT,
+ SECCLASS_XSERVER
};
#define NRES (sizeof(sClasses)/sizeof(sClasses[0]))
diff-tree 7b90944258eba66b61328480759833ad7589bcca (from 568c09481e5d62091d032837171a36f409f39379)
Author: Eamon Walsh <ewalsh at moss-huskies.epoch.ncsc.mil>
Date: Tue Dec 12 15:59:38 2006 -0500
Change MLS levels in config file contexts to more sane defaults.
diff --git a/Xext/XSELinuxConfig b/Xext/XSELinuxConfig
index 9c953f5..65f4015 100644
--- a/Xext/XSELinuxConfig
+++ b/Xext/XSELinuxConfig
@@ -8,8 +8,8 @@
# be defined, and it must be a valid context according to the SELinux
# security policy. Only one nonlocal_context rule may be defined.
#
-nonlocal_context system_u:object_r:remote_xclient_t:s1
-root_window_context system_u:object_r:root_window_t:s1
+nonlocal_context system_u:object_r:remote_xclient_t:s0
+root_window_context system_u:object_r:root_window_t:s0
#
# Property rules map a property name to a SELinux type. The type must
diff-tree 568c09481e5d62091d032837171a36f409f39379 (from 62e7722ebd8d341a23eb56cb330eeb00e6a975a6)
Author: Eamon Walsh <ewalsh at moss-huskies.epoch.ncsc.mil>
Date: Tue Dec 12 15:59:08 2006 -0500
Split AssignClientState() into two routines, new routine is server-specific.
diff --git a/Xext/xselinux.c b/Xext/xselinux.c
index 1c2b508..0de209d 100644
--- a/Xext/xselinux.c
+++ b/Xext/xselinux.c
@@ -382,6 +382,48 @@ ObjectSIDByLabel(security_context_t base
}
/*
+ * AssignServerState - set up server security state.
+ *
+ * Arguments:
+ */
+static void
+AssignServerState(void)
+{
+ int i;
+ security_context_t basectx, objctx;
+ XSELinuxClientStateRec *state;
+
+ state = (XSELinuxClientStateRec*)STATEPTR(serverClient);
+ avc_entry_ref_init(&state->aeref);
+
+ /* use the context of the X server process for the serverClient */
+ if (getcon(&basectx) < 0)
+ FatalError("Couldn't get context of X server process\n");
+
+ /* get a SID from the context */
+ if (avc_context_to_sid(basectx, &state->sid) < 0)
+ FatalError("Client %d: couldn't get security ID for client\n", 0);
+
+ /* get contexts and then SIDs for each resource type */
+ for (i=0; i<NRES; i++) {
+ if (security_compute_create(basectx, basectx, sClasses[i],
+ &objctx) < 0)
+ FatalError("Client %d: couldn't get context for class %x\n", 0,
+ sClasses[i]);
+
+ if (avc_context_to_sid(objctx, &state->rsid[i]) < 0)
+ FatalError("Client %d: couldn't get SID for class %x\n", 0,
+ sClasses[i]);
+
+ freecon(objctx);
+ }
+
+ /* mark as set up, free base context, and return */
+ state->haveState = TRUE;
+ freecon(basectx);
+}
+
+/*
* AssignClientState - set up client security state.
*
* Arguments:
@@ -392,75 +434,41 @@ AssignClientState(ClientPtr client)
{
int i, needToFree = 0;
security_context_t basectx, objctx;
- XSELinuxClientStateRec *state = (XSELinuxClientStateRec*)STATEPTR(client);
- Bool isServerClient = FALSE;
+ XSELinuxClientStateRec *state;
+ state = (XSELinuxClientStateRec*)STATEPTR(client);
avc_entry_ref_init(&state->aeref);
- if (client->index > 0)
- {
- XtransConnInfo ci = ((OsCommPtr)client->osPrivate)->trans_conn;
- if (_XSERVTransIsLocal(ci)) {
- /* for local clients, can get context from the socket */
- int fd = _XSERVTransGetConnectionNumber(ci);
- if (getpeercon(fd, &basectx) < 0)
- {
- FatalError("Client %d: couldn't get context from socket\n",
- client->index);
- }
- needToFree = 1;
- }
- else
- {
- /* for remote clients, need to use a default context */
- basectx = XSELinuxNonlocalContextDefault;
- }
- }
- else
- {
- isServerClient = TRUE;
-
- /* use the context of the X server process for the serverClient */
- if (getcon(&basectx) < 0)
- {
- FatalError("Couldn't get context of X server process\n");
- }
+ XtransConnInfo ci = ((OsCommPtr)client->osPrivate)->trans_conn;
+ if (_XSERVTransIsLocal(ci)) {
+ /* for local clients, can get context from the socket */
+ int fd = _XSERVTransGetConnectionNumber(ci);
+ if (getpeercon(fd, &basectx) < 0)
+ FatalError("Client %d: couldn't get context from socket\n",
+ client->index);
needToFree = 1;
}
+ else
+ /* for remote clients, need to use a default context */
+ basectx = XSELinuxNonlocalContextDefault;
/* get a SID from the context */
if (avc_context_to_sid(basectx, &state->sid) < 0)
- {
FatalError("Client %d: couldn't get security ID for client\n",
client->index);
- }
/* get contexts and then SIDs for each resource type */
- for (i=0; i<NRES; i++)
- {
+ for (i=0; i<NRES; i++) {
if (security_compute_create(basectx, basectx, sClasses[i],
&objctx) < 0)
- {
FatalError("Client %d: couldn't get context for class %x\n",
client->index, sClasses[i]);
- }
- else if (avc_context_to_sid(objctx, &state->rsid[i]) < 0)
- {
+
+ if (avc_context_to_sid(objctx, &state->rsid[i]) < 0)
FatalError("Client %d: couldn't get SID for class %x\n",
client->index, sClasses[i]);
- }
- freecon(objctx);
- }
- /* special handling for serverClient windows (that is, root windows) */
- if (isServerClient == TRUE)
- {
- i = IndexByClass(SECCLASS_WINDOW);
- sidput(state->rsid[i]);
- if (avc_context_to_sid(XSELinuxRootWindowContext, &state->rsid[i]))
- {
- FatalError("Failed to set SID for root window\n");
- }
+ freecon(objctx);
}
/* mark as set up, free base context if necessary, and return */
@@ -1183,7 +1191,7 @@ CALLBACK(XSELinuxClientState)
switch(client->clientState)
{
case ClientStateInitial:
- AssignClientState(serverClient);
+ AssignServerState();
break;
case ClientStateRunning:
More information about the xorg-commit
mailing list