diff options
Diffstat (limited to 'Xi/selectev.c')
-rw-r--r-- | Xi/selectev.c | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/Xi/selectev.c b/Xi/selectev.c index c3fc88ed9..b785a8e45 100644 --- a/Xi/selectev.c +++ b/Xi/selectev.c @@ -66,7 +66,6 @@ SOFTWARE. #include "selectev.h" extern Mask ExtExclusiveMasks[]; -extern Mask ExtValidMasks[]; static int HandleDevicePresenceMask(ClientPtr client, WindowPtr win, @@ -173,10 +172,13 @@ ProcXSelectExtensionEvent(ClientPtr client) for (i = 0; i < EMASKSIZE; i++) if (tmp[i].dev != NULL) { + if (tmp[i].mask & ~XIAllMasks) { + client->errorValue = tmp[i].mask; + return BadValue; + } if ((ret = SelectForWindow((DeviceIntPtr) tmp[i].dev, pWin, client, - tmp[i].mask, ExtExclusiveMasks[i], - ExtValidMasks[i])) != Success) + tmp[i].mask, ExtExclusiveMasks[i]))!= Success) return ret; } |