summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Xext/panoramiXprocs.c25
-rw-r--r--Xext/shm.c24
-rw-r--r--Xext/xvdisp.c23
3 files changed, 45 insertions, 27 deletions
diff --git a/Xext/panoramiXprocs.c b/Xext/panoramiXprocs.c
index 683308425..77a2384c4 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 0c2299a61..049c746d6 100644
--- a/Xext/shm.c
+++ b/Xext/shm.c
@@ -606,7 +606,7 @@ ProcPanoramiXShmGetImage(ClientPtr client)
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 client)
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 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;
@@ -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 ec2b4f8d7..d66604471 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);