DGA: fix screen number check
screenInfo.numScreens is not a valid screen number, they go from 0 to numScreens - 1. Signed-off-by: Julien Cristau <jcristau@debian.org> Reviewed-by: Keith Packard <keithp@keithp.com> Signed-off-by: Keith Packard <keithp@keithp.com>
This commit is contained in:
parent
02449ee24b
commit
8684543021
|
@ -99,7 +99,7 @@ ProcXDGAOpenFramebuffer(ClientPtr client)
|
|||
char *deviceName;
|
||||
int nameSize;
|
||||
|
||||
if (stuff->screen > screenInfo.numScreens)
|
||||
if (stuff->screen >= screenInfo.numScreens)
|
||||
return BadValue;
|
||||
|
||||
if (!DGAAvailable(stuff->screen))
|
||||
|
@ -133,7 +133,7 @@ ProcXDGACloseFramebuffer(ClientPtr client)
|
|||
{
|
||||
REQUEST(xXDGACloseFramebufferReq);
|
||||
|
||||
if (stuff->screen > screenInfo.numScreens)
|
||||
if (stuff->screen >= screenInfo.numScreens)
|
||||
return BadValue;
|
||||
|
||||
if (!DGAAvailable(stuff->screen))
|
||||
|
@ -155,7 +155,7 @@ ProcXDGAQueryModes(ClientPtr client)
|
|||
xXDGAModeInfo info;
|
||||
XDGAModePtr mode;
|
||||
|
||||
if (stuff->screen > screenInfo.numScreens)
|
||||
if (stuff->screen >= screenInfo.numScreens)
|
||||
return BadValue;
|
||||
|
||||
REQUEST_SIZE_MATCH(xXDGAQueryModesReq);
|
||||
|
@ -274,7 +274,7 @@ ProcXDGASetMode(ClientPtr client)
|
|||
ClientPtr owner;
|
||||
int size;
|
||||
|
||||
if (stuff->screen > screenInfo.numScreens)
|
||||
if (stuff->screen >= screenInfo.numScreens)
|
||||
return BadValue;
|
||||
owner = DGA_GETCLIENT(stuff->screen);
|
||||
|
||||
|
@ -363,7 +363,7 @@ ProcXDGASetViewport(ClientPtr client)
|
|||
{
|
||||
REQUEST(xXDGASetViewportReq);
|
||||
|
||||
if (stuff->screen > screenInfo.numScreens)
|
||||
if (stuff->screen >= screenInfo.numScreens)
|
||||
return BadValue;
|
||||
|
||||
if(DGA_GETCLIENT(stuff->screen) != client)
|
||||
|
@ -383,7 +383,7 @@ ProcXDGAInstallColormap(ClientPtr client)
|
|||
int rc;
|
||||
REQUEST(xXDGAInstallColormapReq);
|
||||
|
||||
if (stuff->screen > screenInfo.numScreens)
|
||||
if (stuff->screen >= screenInfo.numScreens)
|
||||
return BadValue;
|
||||
|
||||
if(DGA_GETCLIENT(stuff->screen) != client)
|
||||
|
@ -405,7 +405,7 @@ ProcXDGASelectInput(ClientPtr client)
|
|||
{
|
||||
REQUEST(xXDGASelectInputReq);
|
||||
|
||||
if (stuff->screen > screenInfo.numScreens)
|
||||
if (stuff->screen >= screenInfo.numScreens)
|
||||
return BadValue;
|
||||
|
||||
if(DGA_GETCLIENT(stuff->screen) != client)
|
||||
|
@ -425,7 +425,7 @@ ProcXDGAFillRectangle(ClientPtr client)
|
|||
{
|
||||
REQUEST(xXDGAFillRectangleReq);
|
||||
|
||||
if (stuff->screen > screenInfo.numScreens)
|
||||
if (stuff->screen >= screenInfo.numScreens)
|
||||
return BadValue;
|
||||
|
||||
if(DGA_GETCLIENT(stuff->screen) != client)
|
||||
|
@ -445,7 +445,7 @@ ProcXDGACopyArea(ClientPtr client)
|
|||
{
|
||||
REQUEST(xXDGACopyAreaReq);
|
||||
|
||||
if (stuff->screen > screenInfo.numScreens)
|
||||
if (stuff->screen >= screenInfo.numScreens)
|
||||
return BadValue;
|
||||
|
||||
if(DGA_GETCLIENT(stuff->screen) != client)
|
||||
|
@ -466,7 +466,7 @@ ProcXDGACopyTransparentArea(ClientPtr client)
|
|||
{
|
||||
REQUEST(xXDGACopyTransparentAreaReq);
|
||||
|
||||
if (stuff->screen > screenInfo.numScreens)
|
||||
if (stuff->screen >= screenInfo.numScreens)
|
||||
return BadValue;
|
||||
|
||||
if(DGA_GETCLIENT(stuff->screen) != client)
|
||||
|
@ -488,7 +488,7 @@ ProcXDGAGetViewportStatus(ClientPtr client)
|
|||
REQUEST(xXDGAGetViewportStatusReq);
|
||||
xXDGAGetViewportStatusReply rep;
|
||||
|
||||
if (stuff->screen > screenInfo.numScreens)
|
||||
if (stuff->screen >= screenInfo.numScreens)
|
||||
return BadValue;
|
||||
|
||||
if(DGA_GETCLIENT(stuff->screen) != client)
|
||||
|
@ -511,7 +511,7 @@ ProcXDGASync(ClientPtr client)
|
|||
REQUEST(xXDGASyncReq);
|
||||
xXDGASyncReply rep;
|
||||
|
||||
if (stuff->screen > screenInfo.numScreens)
|
||||
if (stuff->screen >= screenInfo.numScreens)
|
||||
return BadValue;
|
||||
|
||||
if(DGA_GETCLIENT(stuff->screen) != client)
|
||||
|
@ -556,7 +556,7 @@ ProcXDGAChangePixmapMode(ClientPtr client)
|
|||
xXDGAChangePixmapModeReply rep;
|
||||
int x, y;
|
||||
|
||||
if (stuff->screen > screenInfo.numScreens)
|
||||
if (stuff->screen >= screenInfo.numScreens)
|
||||
return BadValue;
|
||||
|
||||
if(DGA_GETCLIENT(stuff->screen) != client)
|
||||
|
@ -587,7 +587,7 @@ ProcXDGACreateColormap(ClientPtr client)
|
|||
REQUEST(xXDGACreateColormapReq);
|
||||
int result;
|
||||
|
||||
if (stuff->screen > screenInfo.numScreens)
|
||||
if (stuff->screen >= screenInfo.numScreens)
|
||||
return BadValue;
|
||||
|
||||
if(DGA_GETCLIENT(stuff->screen) != client)
|
||||
|
@ -625,7 +625,7 @@ ProcXF86DGAGetVideoLL(ClientPtr client)
|
|||
int num, offset, flags;
|
||||
char *name;
|
||||
|
||||
if (stuff->screen > screenInfo.numScreens)
|
||||
if (stuff->screen >= screenInfo.numScreens)
|
||||
return BadValue;
|
||||
|
||||
REQUEST_SIZE_MATCH(xXF86DGAGetVideoLLReq);
|
||||
|
@ -664,7 +664,7 @@ ProcXF86DGADirectVideo(ClientPtr client)
|
|||
ClientPtr owner;
|
||||
REQUEST(xXF86DGADirectVideoReq);
|
||||
|
||||
if (stuff->screen > screenInfo.numScreens)
|
||||
if (stuff->screen >= screenInfo.numScreens)
|
||||
return BadValue;
|
||||
REQUEST_SIZE_MATCH(xXF86DGADirectVideoReq);
|
||||
|
||||
|
@ -718,7 +718,7 @@ ProcXF86DGAGetViewPortSize(ClientPtr client)
|
|||
REQUEST(xXF86DGAGetViewPortSizeReq);
|
||||
xXF86DGAGetViewPortSizeReply rep;
|
||||
|
||||
if (stuff->screen > screenInfo.numScreens)
|
||||
if (stuff->screen >= screenInfo.numScreens)
|
||||
return BadValue;
|
||||
|
||||
REQUEST_SIZE_MATCH(xXF86DGAGetViewPortSizeReq);
|
||||
|
@ -746,7 +746,7 @@ ProcXF86DGASetViewPort(ClientPtr client)
|
|||
{
|
||||
REQUEST(xXF86DGASetViewPortReq);
|
||||
|
||||
if (stuff->screen > screenInfo.numScreens)
|
||||
if (stuff->screen >= screenInfo.numScreens)
|
||||
return BadValue;
|
||||
|
||||
if (DGA_GETCLIENT(stuff->screen) != client)
|
||||
|
@ -773,7 +773,7 @@ ProcXF86DGAGetVidPage(ClientPtr client)
|
|||
REQUEST(xXF86DGAGetVidPageReq);
|
||||
xXF86DGAGetVidPageReply rep;
|
||||
|
||||
if (stuff->screen > screenInfo.numScreens)
|
||||
if (stuff->screen >= screenInfo.numScreens)
|
||||
return BadValue;
|
||||
|
||||
REQUEST_SIZE_MATCH(xXF86DGAGetVidPageReq);
|
||||
|
@ -792,7 +792,7 @@ ProcXF86DGASetVidPage(ClientPtr client)
|
|||
{
|
||||
REQUEST(xXF86DGASetVidPageReq);
|
||||
|
||||
if (stuff->screen > screenInfo.numScreens)
|
||||
if (stuff->screen >= screenInfo.numScreens)
|
||||
return BadValue;
|
||||
|
||||
REQUEST_SIZE_MATCH(xXF86DGASetVidPageReq);
|
||||
|
@ -810,7 +810,7 @@ ProcXF86DGAInstallColormap(ClientPtr client)
|
|||
int rc;
|
||||
REQUEST(xXF86DGAInstallColormapReq);
|
||||
|
||||
if (stuff->screen > screenInfo.numScreens)
|
||||
if (stuff->screen >= screenInfo.numScreens)
|
||||
return BadValue;
|
||||
|
||||
if (DGA_GETCLIENT(stuff->screen) != client)
|
||||
|
@ -837,7 +837,7 @@ ProcXF86DGAQueryDirectVideo(ClientPtr client)
|
|||
REQUEST(xXF86DGAQueryDirectVideoReq);
|
||||
xXF86DGAQueryDirectVideoReply rep;
|
||||
|
||||
if (stuff->screen > screenInfo.numScreens)
|
||||
if (stuff->screen >= screenInfo.numScreens)
|
||||
return BadValue;
|
||||
|
||||
REQUEST_SIZE_MATCH(xXF86DGAQueryDirectVideoReq);
|
||||
|
@ -859,7 +859,7 @@ ProcXF86DGAViewPortChanged(ClientPtr client)
|
|||
REQUEST(xXF86DGAViewPortChangedReq);
|
||||
xXF86DGAViewPortChangedReply rep;
|
||||
|
||||
if (stuff->screen > screenInfo.numScreens)
|
||||
if (stuff->screen >= screenInfo.numScreens)
|
||||
return BadValue;
|
||||
|
||||
if (DGA_GETCLIENT(stuff->screen) != client)
|
||||
|
|
Loading…
Reference in New Issue