Fix screen number checks.
screenInfo.numScreens is not a valid screen number, they go from 0 to numScreens - 1. Signed-off-by: Cyril Brulebois <kibi@debian.org> Reviewed-by: Alex Deucher <alexdeucher@gmail.com> Signed-off-by: Keith Packard <keithp@keithp.com>
This commit is contained in:
parent
8684543021
commit
279ef1ffd7
|
@ -1531,7 +1531,7 @@ int __glXGetVisualConfigs(__GLXclientState *cl, GLbyte *pc)
|
||||||
int i, p;
|
int i, p;
|
||||||
|
|
||||||
screen = req->screen;
|
screen = req->screen;
|
||||||
if (screen > screenInfo.numScreens) {
|
if (screen >= screenInfo.numScreens) {
|
||||||
/* The client library must send a valid screen number. */
|
/* The client library must send a valid screen number. */
|
||||||
client->errorValue = screen;
|
client->errorValue = screen;
|
||||||
return BadValue;
|
return BadValue;
|
||||||
|
@ -2680,7 +2680,7 @@ int __glXGetFBConfigs(__GLXclientState *cl, GLbyte *pc)
|
||||||
int numFBConfigs, i, p;
|
int numFBConfigs, i, p;
|
||||||
__GLXscreenInfo *pGlxScreen;
|
__GLXscreenInfo *pGlxScreen;
|
||||||
|
|
||||||
if (screen > screenInfo.numScreens) {
|
if (screen >= screenInfo.numScreens) {
|
||||||
/* The client library must send a valid screen number. */
|
/* The client library must send a valid screen number. */
|
||||||
client->errorValue = screen;
|
client->errorValue = screen;
|
||||||
return BadValue;
|
return BadValue;
|
||||||
|
@ -3102,7 +3102,7 @@ int __glXCreatePbuffer(__GLXclientState *cl, GLbyte *pc)
|
||||||
/*
|
/*
|
||||||
** Look up screen and FBConfig.
|
** Look up screen and FBConfig.
|
||||||
*/
|
*/
|
||||||
if (screen > screenInfo.numScreens) {
|
if (screen >= screenInfo.numScreens) {
|
||||||
/* The client library must send a valid screen number. */
|
/* The client library must send a valid screen number. */
|
||||||
client->errorValue = screen;
|
client->errorValue = screen;
|
||||||
return BadValue;
|
return BadValue;
|
||||||
|
|
|
@ -252,7 +252,7 @@ int __glXSwapGetVisualConfigs(__GLXclientState *cl, GLbyte *pc)
|
||||||
|
|
||||||
__GLX_SWAP_INT(&req->screen);
|
__GLX_SWAP_INT(&req->screen);
|
||||||
screen = req->screen;
|
screen = req->screen;
|
||||||
if (screen > screenInfo.numScreens) {
|
if (screen >= screenInfo.numScreens) {
|
||||||
/* The client library must send a valid screen number. */
|
/* The client library must send a valid screen number. */
|
||||||
client->errorValue = screen;
|
client->errorValue = screen;
|
||||||
return BadValue;
|
return BadValue;
|
||||||
|
|
|
@ -398,7 +398,7 @@ EphyrDuplicateVisual (unsigned int a_screen,
|
||||||
int i=0 ;
|
int i=0 ;
|
||||||
|
|
||||||
EPHYR_LOG ("enter\n") ;
|
EPHYR_LOG ("enter\n") ;
|
||||||
if (a_screen > screenInfo.numScreens) {
|
if (a_screen >= screenInfo.numScreens) {
|
||||||
EPHYR_LOG_ERROR ("bad screen number\n") ;
|
EPHYR_LOG_ERROR ("bad screen number\n") ;
|
||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue