xace: change prototype of VALIDATE_DRAWABLE_AND_GC macro to allow access
mode to be passed to dixLookupDrawable.
This commit is contained in:
parent
a247886b08
commit
9bd04055a2
|
@ -1049,8 +1049,7 @@ int PanoramiXCopyArea(ClientPtr client)
|
||||||
|
|
||||||
FOR_NSCREENS_BACKWARD(j) {
|
FOR_NSCREENS_BACKWARD(j) {
|
||||||
stuff->gc = gc->info[j].id;
|
stuff->gc = gc->info[j].id;
|
||||||
VALIDATE_DRAWABLE_AND_GC(dst->info[j].id, pDst, pGC, client);
|
VALIDATE_DRAWABLE_AND_GC(dst->info[j].id, pDst, DixWriteAccess);
|
||||||
|
|
||||||
if(drawables[0]->depth != pDst->depth) {
|
if(drawables[0]->depth != pDst->depth) {
|
||||||
client->errorValue = stuff->dstDrawable;
|
client->errorValue = stuff->dstDrawable;
|
||||||
xfree(data);
|
xfree(data);
|
||||||
|
@ -1086,7 +1085,8 @@ int PanoramiXCopyArea(ClientPtr client)
|
||||||
stuff->dstY = dsty - panoramiXdataPtr[j].y;
|
stuff->dstY = dsty - panoramiXdataPtr[j].y;
|
||||||
}
|
}
|
||||||
|
|
||||||
VALIDATE_DRAWABLE_AND_GC(stuff->dstDrawable, pDst, pGC, client);
|
VALIDATE_DRAWABLE_AND_GC(stuff->dstDrawable, pDst, DixWriteAccess);
|
||||||
|
|
||||||
if (stuff->dstDrawable != stuff->srcDrawable) {
|
if (stuff->dstDrawable != stuff->srcDrawable) {
|
||||||
rc = dixLookupDrawable(&pSrc, stuff->srcDrawable, client, 0,
|
rc = dixLookupDrawable(&pSrc, stuff->srcDrawable, client, 0,
|
||||||
DixReadAccess);
|
DixReadAccess);
|
||||||
|
@ -1195,7 +1195,7 @@ int PanoramiXCopyPlane(ClientPtr client)
|
||||||
stuff->dstY = dsty - panoramiXdataPtr[j].y;
|
stuff->dstY = dsty - panoramiXdataPtr[j].y;
|
||||||
}
|
}
|
||||||
|
|
||||||
VALIDATE_DRAWABLE_AND_GC(stuff->dstDrawable, pdstDraw, pGC, client);
|
VALIDATE_DRAWABLE_AND_GC(stuff->dstDrawable, pdstDraw, DixWriteAccess);
|
||||||
if (stuff->dstDrawable != stuff->srcDrawable) {
|
if (stuff->dstDrawable != stuff->srcDrawable) {
|
||||||
rc = dixLookupDrawable(&psrcDraw, stuff->srcDrawable, client, 0,
|
rc = dixLookupDrawable(&psrcDraw, stuff->srcDrawable, client, 0,
|
||||||
DixReadAccess);
|
DixReadAccess);
|
||||||
|
|
|
@ -795,7 +795,7 @@ ProcShmPutImage(client)
|
||||||
REQUEST(xShmPutImageReq);
|
REQUEST(xShmPutImageReq);
|
||||||
|
|
||||||
REQUEST_SIZE_MATCH(xShmPutImageReq);
|
REQUEST_SIZE_MATCH(xShmPutImageReq);
|
||||||
VALIDATE_DRAWABLE_AND_GC(stuff->drawable, pDraw, pGC, client);
|
VALIDATE_DRAWABLE_AND_GC(stuff->drawable, pDraw, DixWriteAccess);
|
||||||
VERIFY_SHMPTR(stuff->shmseg, stuff->offset, FALSE, shmdesc, client);
|
VERIFY_SHMPTR(stuff->shmseg, stuff->offset, FALSE, shmdesc, client);
|
||||||
if ((stuff->sendEvent != xTrue) && (stuff->sendEvent != xFalse))
|
if ((stuff->sendEvent != xTrue) && (stuff->sendEvent != xFalse))
|
||||||
return BadValue;
|
return BadValue;
|
||||||
|
|
|
@ -535,7 +535,7 @@ ProcXvPutVideo(ClientPtr client)
|
||||||
REQUEST(xvPutVideoReq);
|
REQUEST(xvPutVideoReq);
|
||||||
REQUEST_SIZE_MATCH(xvPutVideoReq);
|
REQUEST_SIZE_MATCH(xvPutVideoReq);
|
||||||
|
|
||||||
VALIDATE_DRAWABLE_AND_GC(stuff->drawable, pDraw, pGC, client);
|
VALIDATE_DRAWABLE_AND_GC(stuff->drawable, pDraw, DixWriteAccess);
|
||||||
|
|
||||||
if(!(pPort = LOOKUP_PORT(stuff->port, client) ))
|
if(!(pPort = LOOKUP_PORT(stuff->port, client) ))
|
||||||
{
|
{
|
||||||
|
@ -581,7 +581,7 @@ ProcXvPutStill(ClientPtr client)
|
||||||
REQUEST(xvPutStillReq);
|
REQUEST(xvPutStillReq);
|
||||||
REQUEST_SIZE_MATCH(xvPutStillReq);
|
REQUEST_SIZE_MATCH(xvPutStillReq);
|
||||||
|
|
||||||
VALIDATE_DRAWABLE_AND_GC(stuff->drawable, pDraw, pGC, client);
|
VALIDATE_DRAWABLE_AND_GC(stuff->drawable, pDraw, DixWriteAccess);
|
||||||
|
|
||||||
if(!(pPort = LOOKUP_PORT(stuff->port, client) ))
|
if(!(pPort = LOOKUP_PORT(stuff->port, client) ))
|
||||||
{
|
{
|
||||||
|
@ -628,7 +628,7 @@ ProcXvGetVideo(ClientPtr client)
|
||||||
REQUEST(xvGetVideoReq);
|
REQUEST(xvGetVideoReq);
|
||||||
REQUEST_SIZE_MATCH(xvGetVideoReq);
|
REQUEST_SIZE_MATCH(xvGetVideoReq);
|
||||||
|
|
||||||
VALIDATE_DRAWABLE_AND_GC(stuff->drawable, pDraw, pGC, client);
|
VALIDATE_DRAWABLE_AND_GC(stuff->drawable, pDraw, DixReadAccess);
|
||||||
|
|
||||||
if(!(pPort = LOOKUP_PORT(stuff->port, client) ))
|
if(!(pPort = LOOKUP_PORT(stuff->port, client) ))
|
||||||
{
|
{
|
||||||
|
@ -675,7 +675,7 @@ ProcXvGetStill(ClientPtr client)
|
||||||
REQUEST(xvGetStillReq);
|
REQUEST(xvGetStillReq);
|
||||||
REQUEST_SIZE_MATCH(xvGetStillReq);
|
REQUEST_SIZE_MATCH(xvGetStillReq);
|
||||||
|
|
||||||
VALIDATE_DRAWABLE_AND_GC(stuff->drawable, pDraw, pGC, client);
|
VALIDATE_DRAWABLE_AND_GC(stuff->drawable, pDraw, DixReadAccess);
|
||||||
|
|
||||||
if(!(pPort = LOOKUP_PORT(stuff->port, client) ))
|
if(!(pPort = LOOKUP_PORT(stuff->port, client) ))
|
||||||
{
|
{
|
||||||
|
@ -1036,7 +1036,7 @@ ProcXvPutImage(ClientPtr client)
|
||||||
REQUEST(xvPutImageReq);
|
REQUEST(xvPutImageReq);
|
||||||
REQUEST_AT_LEAST_SIZE(xvPutImageReq);
|
REQUEST_AT_LEAST_SIZE(xvPutImageReq);
|
||||||
|
|
||||||
VALIDATE_DRAWABLE_AND_GC(stuff->drawable, pDraw, pGC, client);
|
VALIDATE_DRAWABLE_AND_GC(stuff->drawable, pDraw, DixWriteAccess);
|
||||||
|
|
||||||
if(!(pPort = LOOKUP_PORT(stuff->port, client) ))
|
if(!(pPort = LOOKUP_PORT(stuff->port, client) ))
|
||||||
{
|
{
|
||||||
|
@ -1124,7 +1124,7 @@ ProcXvShmPutImage(ClientPtr client)
|
||||||
REQUEST(xvShmPutImageReq);
|
REQUEST(xvShmPutImageReq);
|
||||||
REQUEST_SIZE_MATCH(xvShmPutImageReq);
|
REQUEST_SIZE_MATCH(xvShmPutImageReq);
|
||||||
|
|
||||||
VALIDATE_DRAWABLE_AND_GC(stuff->drawable, pDraw, pGC, client);
|
VALIDATE_DRAWABLE_AND_GC(stuff->drawable, pDraw, DixWriteAccess);
|
||||||
|
|
||||||
if(!(pPort = LOOKUP_PORT(stuff->port, client) ))
|
if(!(pPort = LOOKUP_PORT(stuff->port, client) ))
|
||||||
{
|
{
|
||||||
|
|
|
@ -1791,7 +1791,7 @@ ProcCopyArea(ClientPtr client)
|
||||||
|
|
||||||
REQUEST_SIZE_MATCH(xCopyAreaReq);
|
REQUEST_SIZE_MATCH(xCopyAreaReq);
|
||||||
|
|
||||||
VALIDATE_DRAWABLE_AND_GC(stuff->dstDrawable, pDst, pGC, client);
|
VALIDATE_DRAWABLE_AND_GC(stuff->dstDrawable, pDst, DixWriteAccess);
|
||||||
if (stuff->dstDrawable != stuff->srcDrawable)
|
if (stuff->dstDrawable != stuff->srcDrawable)
|
||||||
{
|
{
|
||||||
rc = dixLookupDrawable(&pSrc, stuff->srcDrawable, client, 0,
|
rc = dixLookupDrawable(&pSrc, stuff->srcDrawable, client, 0,
|
||||||
|
@ -1832,7 +1832,7 @@ ProcCopyPlane(ClientPtr client)
|
||||||
|
|
||||||
REQUEST_SIZE_MATCH(xCopyPlaneReq);
|
REQUEST_SIZE_MATCH(xCopyPlaneReq);
|
||||||
|
|
||||||
VALIDATE_DRAWABLE_AND_GC(stuff->dstDrawable, pdstDraw, pGC, client);
|
VALIDATE_DRAWABLE_AND_GC(stuff->dstDrawable, pdstDraw, DixWriteAccess);
|
||||||
if (stuff->dstDrawable != stuff->srcDrawable)
|
if (stuff->dstDrawable != stuff->srcDrawable)
|
||||||
{
|
{
|
||||||
rc = dixLookupDrawable(&psrcDraw, stuff->srcDrawable, client, 0,
|
rc = dixLookupDrawable(&psrcDraw, stuff->srcDrawable, client, 0,
|
||||||
|
@ -1885,7 +1885,7 @@ ProcPolyPoint(ClientPtr client)
|
||||||
client->errorValue = stuff->coordMode;
|
client->errorValue = stuff->coordMode;
|
||||||
return BadValue;
|
return BadValue;
|
||||||
}
|
}
|
||||||
VALIDATE_DRAWABLE_AND_GC(stuff->drawable, pDraw, pGC, client);
|
VALIDATE_DRAWABLE_AND_GC(stuff->drawable, pDraw, DixWriteAccess);
|
||||||
npoint = ((client->req_len << 2) - sizeof(xPolyPointReq)) >> 2;
|
npoint = ((client->req_len << 2) - sizeof(xPolyPointReq)) >> 2;
|
||||||
if (npoint)
|
if (npoint)
|
||||||
(*pGC->ops->PolyPoint)(pDraw, pGC, stuff->coordMode, npoint,
|
(*pGC->ops->PolyPoint)(pDraw, pGC, stuff->coordMode, npoint,
|
||||||
|
@ -1908,7 +1908,7 @@ ProcPolyLine(ClientPtr client)
|
||||||
client->errorValue = stuff->coordMode;
|
client->errorValue = stuff->coordMode;
|
||||||
return BadValue;
|
return BadValue;
|
||||||
}
|
}
|
||||||
VALIDATE_DRAWABLE_AND_GC(stuff->drawable, pDraw, pGC, client);
|
VALIDATE_DRAWABLE_AND_GC(stuff->drawable, pDraw, DixWriteAccess);
|
||||||
npoint = ((client->req_len << 2) - sizeof(xPolyLineReq)) >> 2;
|
npoint = ((client->req_len << 2) - sizeof(xPolyLineReq)) >> 2;
|
||||||
if (npoint > 1)
|
if (npoint > 1)
|
||||||
(*pGC->ops->Polylines)(pDraw, pGC, stuff->coordMode, npoint,
|
(*pGC->ops->Polylines)(pDraw, pGC, stuff->coordMode, npoint,
|
||||||
|
@ -1925,7 +1925,7 @@ ProcPolySegment(ClientPtr client)
|
||||||
REQUEST(xPolySegmentReq);
|
REQUEST(xPolySegmentReq);
|
||||||
|
|
||||||
REQUEST_AT_LEAST_SIZE(xPolySegmentReq);
|
REQUEST_AT_LEAST_SIZE(xPolySegmentReq);
|
||||||
VALIDATE_DRAWABLE_AND_GC(stuff->drawable, pDraw, pGC, client);
|
VALIDATE_DRAWABLE_AND_GC(stuff->drawable, pDraw, DixWriteAccess);
|
||||||
nsegs = (client->req_len << 2) - sizeof(xPolySegmentReq);
|
nsegs = (client->req_len << 2) - sizeof(xPolySegmentReq);
|
||||||
if (nsegs & 4)
|
if (nsegs & 4)
|
||||||
return(BadLength);
|
return(BadLength);
|
||||||
|
@ -1944,7 +1944,7 @@ ProcPolyRectangle (ClientPtr client)
|
||||||
REQUEST(xPolyRectangleReq);
|
REQUEST(xPolyRectangleReq);
|
||||||
|
|
||||||
REQUEST_AT_LEAST_SIZE(xPolyRectangleReq);
|
REQUEST_AT_LEAST_SIZE(xPolyRectangleReq);
|
||||||
VALIDATE_DRAWABLE_AND_GC(stuff->drawable, pDraw, pGC, client);
|
VALIDATE_DRAWABLE_AND_GC(stuff->drawable, pDraw, DixWriteAccess);
|
||||||
nrects = (client->req_len << 2) - sizeof(xPolyRectangleReq);
|
nrects = (client->req_len << 2) - sizeof(xPolyRectangleReq);
|
||||||
if (nrects & 4)
|
if (nrects & 4)
|
||||||
return(BadLength);
|
return(BadLength);
|
||||||
|
@ -1964,7 +1964,7 @@ ProcPolyArc(ClientPtr client)
|
||||||
REQUEST(xPolyArcReq);
|
REQUEST(xPolyArcReq);
|
||||||
|
|
||||||
REQUEST_AT_LEAST_SIZE(xPolyArcReq);
|
REQUEST_AT_LEAST_SIZE(xPolyArcReq);
|
||||||
VALIDATE_DRAWABLE_AND_GC(stuff->drawable, pDraw, pGC, client);
|
VALIDATE_DRAWABLE_AND_GC(stuff->drawable, pDraw, DixWriteAccess);
|
||||||
narcs = (client->req_len << 2) - sizeof(xPolyArcReq);
|
narcs = (client->req_len << 2) - sizeof(xPolyArcReq);
|
||||||
if (narcs % sizeof(xArc))
|
if (narcs % sizeof(xArc))
|
||||||
return(BadLength);
|
return(BadLength);
|
||||||
|
@ -1996,7 +1996,7 @@ ProcFillPoly(ClientPtr client)
|
||||||
return BadValue;
|
return BadValue;
|
||||||
}
|
}
|
||||||
|
|
||||||
VALIDATE_DRAWABLE_AND_GC(stuff->drawable, pDraw, pGC, client);
|
VALIDATE_DRAWABLE_AND_GC(stuff->drawable, pDraw, DixWriteAccess);
|
||||||
things = ((client->req_len << 2) - sizeof(xFillPolyReq)) >> 2;
|
things = ((client->req_len << 2) - sizeof(xFillPolyReq)) >> 2;
|
||||||
if (things)
|
if (things)
|
||||||
(*pGC->ops->FillPolygon) (pDraw, pGC, stuff->shape,
|
(*pGC->ops->FillPolygon) (pDraw, pGC, stuff->shape,
|
||||||
|
@ -2014,7 +2014,7 @@ ProcPolyFillRectangle(ClientPtr client)
|
||||||
REQUEST(xPolyFillRectangleReq);
|
REQUEST(xPolyFillRectangleReq);
|
||||||
|
|
||||||
REQUEST_AT_LEAST_SIZE(xPolyFillRectangleReq);
|
REQUEST_AT_LEAST_SIZE(xPolyFillRectangleReq);
|
||||||
VALIDATE_DRAWABLE_AND_GC(stuff->drawable, pDraw, pGC, client);
|
VALIDATE_DRAWABLE_AND_GC(stuff->drawable, pDraw, DixWriteAccess);
|
||||||
things = (client->req_len << 2) - sizeof(xPolyFillRectangleReq);
|
things = (client->req_len << 2) - sizeof(xPolyFillRectangleReq);
|
||||||
if (things & 4)
|
if (things & 4)
|
||||||
return(BadLength);
|
return(BadLength);
|
||||||
|
@ -2035,7 +2035,7 @@ ProcPolyFillArc(ClientPtr client)
|
||||||
REQUEST(xPolyFillArcReq);
|
REQUEST(xPolyFillArcReq);
|
||||||
|
|
||||||
REQUEST_AT_LEAST_SIZE(xPolyFillArcReq);
|
REQUEST_AT_LEAST_SIZE(xPolyFillArcReq);
|
||||||
VALIDATE_DRAWABLE_AND_GC(stuff->drawable, pDraw, pGC, client);
|
VALIDATE_DRAWABLE_AND_GC(stuff->drawable, pDraw, DixWriteAccess);
|
||||||
narcs = (client->req_len << 2) - sizeof(xPolyFillArcReq);
|
narcs = (client->req_len << 2) - sizeof(xPolyFillArcReq);
|
||||||
if (narcs % sizeof(xArc))
|
if (narcs % sizeof(xArc))
|
||||||
return(BadLength);
|
return(BadLength);
|
||||||
|
@ -2110,7 +2110,7 @@ ProcPutImage(ClientPtr client)
|
||||||
REQUEST(xPutImageReq);
|
REQUEST(xPutImageReq);
|
||||||
|
|
||||||
REQUEST_AT_LEAST_SIZE(xPutImageReq);
|
REQUEST_AT_LEAST_SIZE(xPutImageReq);
|
||||||
VALIDATE_DRAWABLE_AND_GC(stuff->drawable, pDraw, pGC, client);
|
VALIDATE_DRAWABLE_AND_GC(stuff->drawable, pDraw, DixWriteAccess);
|
||||||
if (stuff->format == XYBitmap)
|
if (stuff->format == XYBitmap)
|
||||||
{
|
{
|
||||||
if ((stuff->depth != 1) ||
|
if ((stuff->depth != 1) ||
|
||||||
|
@ -2396,7 +2396,7 @@ ProcPolyText(ClientPtr client)
|
||||||
GC *pGC;
|
GC *pGC;
|
||||||
|
|
||||||
REQUEST_AT_LEAST_SIZE(xPolyTextReq);
|
REQUEST_AT_LEAST_SIZE(xPolyTextReq);
|
||||||
VALIDATE_DRAWABLE_AND_GC(stuff->drawable, pDraw, pGC, client);
|
VALIDATE_DRAWABLE_AND_GC(stuff->drawable, pDraw, DixWriteAccess);
|
||||||
|
|
||||||
err = PolyText(client,
|
err = PolyText(client,
|
||||||
pDraw,
|
pDraw,
|
||||||
|
@ -2426,7 +2426,7 @@ ProcImageText8(ClientPtr client)
|
||||||
REQUEST(xImageTextReq);
|
REQUEST(xImageTextReq);
|
||||||
|
|
||||||
REQUEST_FIXED_SIZE(xImageTextReq, stuff->nChars);
|
REQUEST_FIXED_SIZE(xImageTextReq, stuff->nChars);
|
||||||
VALIDATE_DRAWABLE_AND_GC(stuff->drawable, pDraw, pGC, client);
|
VALIDATE_DRAWABLE_AND_GC(stuff->drawable, pDraw, DixWriteAccess);
|
||||||
|
|
||||||
err = ImageText(client,
|
err = ImageText(client,
|
||||||
pDraw,
|
pDraw,
|
||||||
|
@ -2456,7 +2456,7 @@ ProcImageText16(ClientPtr client)
|
||||||
REQUEST(xImageTextReq);
|
REQUEST(xImageTextReq);
|
||||||
|
|
||||||
REQUEST_FIXED_SIZE(xImageTextReq, stuff->nChars << 1);
|
REQUEST_FIXED_SIZE(xImageTextReq, stuff->nChars << 1);
|
||||||
VALIDATE_DRAWABLE_AND_GC(stuff->drawable, pDraw, pGC, client);
|
VALIDATE_DRAWABLE_AND_GC(stuff->drawable, pDraw, DixWriteAccess);
|
||||||
|
|
||||||
err = ImageText(client,
|
err = ImageText(client,
|
||||||
pDraw,
|
pDraw,
|
||||||
|
|
|
@ -81,11 +81,9 @@ SOFTWARE.
|
||||||
return(BadIDChoice);\
|
return(BadIDChoice);\
|
||||||
}
|
}
|
||||||
|
|
||||||
#define VALIDATE_DRAWABLE_AND_GC(drawID, pDraw, pGC, client)\
|
#define VALIDATE_DRAWABLE_AND_GC(drawID, pDraw, mode)\
|
||||||
{\
|
{\
|
||||||
int rc;\
|
int rc = dixLookupDrawable(&(pDraw), drawID, client, M_ANY, mode);\
|
||||||
rc = dixLookupDrawable(&(pDraw), drawID, client, M_ANY,\
|
|
||||||
DixWriteAccess);\
|
|
||||||
if (rc != Success)\
|
if (rc != Success)\
|
||||||
return rc;\
|
return rc;\
|
||||||
rc = dixLookupGC(&(pGC), stuff->gc, client, DixUseAccess);\
|
rc = dixLookupGC(&(pGC), stuff->gc, client, DixUseAccess);\
|
||||||
|
|
Loading…
Reference in New Issue