summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Xi/chdevcur.c6
-rw-r--r--Xi/chdevhier.c35
-rw-r--r--Xi/querydev.c6
-rw-r--r--Xi/querydp.c6
-rw-r--r--Xi/setcptr.c5
-rw-r--r--Xi/warpdevp.c6
-rw-r--r--Xi/xiallowev.c6
-rw-r--r--Xi/xigrabdev.c9
-rw-r--r--Xi/xipassivegrab.c9
-rw-r--r--Xi/xiproperty.c26
-rw-r--r--Xi/xiselectev.c6
-rw-r--r--Xi/xisetdevfocus.c12
12 files changed, 132 insertions, 0 deletions
diff --git a/Xi/chdevcur.c b/Xi/chdevcur.c
index fdea106d7..9dba78b36 100644
--- a/Xi/chdevcur.c
+++ b/Xi/chdevcur.c
@@ -74,6 +74,12 @@ int ProcXIChangeCursor(ClientPtr client)
REQUEST(xXIChangeCursorReq);
REQUEST_SIZE_MATCH(xXIChangeCursorReq);
+ if (stuff->deviceid > 0xFF) /* FIXME */
+ {
+ client->errorValue = stuff->deviceid;
+ return BadImplementation;
+ }
+
rc = dixLookupDevice(&pDev, stuff->deviceid, client, DixSetAttrAccess);
if (rc != Success)
return rc;
diff --git a/Xi/chdevhier.c b/Xi/chdevhier.c
index 927df5569..bd3da08d7 100644
--- a/Xi/chdevhier.c
+++ b/Xi/chdevhier.c
@@ -238,6 +238,12 @@ ProcXIChangeHierarchy(ClientPtr client)
r->return_mode != XIFloating)
return BadValue;
+ if (r->deviceid > 0xFF) /* FIXME */
+ {
+ client->errorValue = r->deviceid;
+ return BadImplementation;
+ }
+
rc = dixLookupDevice(&ptr, r->deviceid, client,
DixDestroyAccess);
if (rc != Success)
@@ -338,6 +344,12 @@ ProcXIChangeHierarchy(ClientPtr client)
newptr,
newkeybd;
+ if (r->return_pointer > 0xFF) /* FIXME */
+ {
+ client->errorValue = r->deviceid;
+ return BadImplementation;
+ }
+
rc = dixLookupDevice(&newptr, r->return_pointer,
client, DixWriteAccess);
if (rc != Success)
@@ -350,6 +362,12 @@ ProcXIChangeHierarchy(ClientPtr client)
goto unwind;
}
+ if (r->return_keyboard > 0xFF) /* FIXME */
+ {
+ client->errorValue = r->deviceid;
+ return BadImplementation;
+ }
+
rc = dixLookupDevice(&newkeybd, r->return_keyboard,
client, DixWriteAccess);
if (rc != Success)
@@ -413,6 +431,12 @@ ProcXIChangeHierarchy(ClientPtr client)
xXIDetachSlaveInfo* c = (xXIDetachSlaveInfo*)any;
DeviceIntPtr *xtstdevice;
+ if (c->deviceid > 0xFF) /* FIXME */
+ {
+ client->errorValue = c->deviceid;
+ return BadImplementation;
+ }
+
rc = dixLookupDevice(&ptr, c->deviceid, client,
DixWriteAccess);
if (rc != Success)
@@ -446,6 +470,17 @@ ProcXIChangeHierarchy(ClientPtr client)
DeviceIntPtr newmaster;
DeviceIntPtr *xtstdevice;
+ if (c->deviceid > 0xFF) /* FIXME */
+ {
+ client->errorValue = c->deviceid;
+ return BadImplementation;
+ }
+ if (c->new_master > 0xFF) /* FIXME */
+ {
+ client->errorValue = c->new_master;
+ return BadImplementation;
+ }
+
rc = dixLookupDevice(&ptr, c->deviceid, client,
DixWriteAccess);
if (rc != Success)
diff --git a/Xi/querydev.c b/Xi/querydev.c
index 0d661a9f8..a44cf223e 100644
--- a/Xi/querydev.c
+++ b/Xi/querydev.c
@@ -70,6 +70,12 @@ ProcXIQueryDevice(ClientPtr client)
REQUEST(xXIQueryDeviceReq);
REQUEST_SIZE_MATCH(xXIQueryDeviceReq);
+ if (stuff->deviceid > 0xFF) /* FIXME */
+ {
+ client->errorValue = stuff->deviceid;
+ return BadImplementation;
+ }
+
if (stuff->deviceid != XIAllDevices && stuff->deviceid != XIAllMasterDevices)
{
rc = dixLookupDevice(&dev, stuff->deviceid, client, DixGetAttrAccess);
diff --git a/Xi/querydp.c b/Xi/querydp.c
index 2e2cfaaec..bc6feb1b1 100644
--- a/Xi/querydp.c
+++ b/Xi/querydp.c
@@ -81,6 +81,12 @@ ProcXIQueryPointer(ClientPtr client)
REQUEST(xXIQueryPointerReq);
REQUEST_SIZE_MATCH(xXIQueryPointerReq);
+ if (stuff->deviceid > 0xFF) /* FIXME */
+ {
+ client->errorValue = stuff->deviceid;
+ return BadImplementation;
+ }
+
rc = dixLookupDevice(&pDev, stuff->deviceid, client, DixReadAccess);
if (rc != Success)
return rc;
diff --git a/Xi/setcptr.c b/Xi/setcptr.c
index 0bfc1eab7..ba7624691 100644
--- a/Xi/setcptr.c
+++ b/Xi/setcptr.c
@@ -69,6 +69,11 @@ ProcXISetClientPointer(ClientPtr client)
REQUEST(xXISetClientPointerReq);
REQUEST_SIZE_MATCH(xXISetClientPointerReq);
+ if (stuff->deviceid > 0xFF) /* FIXME */
+ {
+ client->errorValue = stuff->deviceid;
+ return BadImplementation;
+ }
rc = dixLookupDevice(&pDev, stuff->deviceid, client, DixWriteAccess);
if (rc != Success)
diff --git a/Xi/warpdevp.c b/Xi/warpdevp.c
index 025a4cef7..bb45bdafc 100644
--- a/Xi/warpdevp.c
+++ b/Xi/warpdevp.c
@@ -76,6 +76,12 @@ ProcXIWarpPointer(ClientPtr client)
REQUEST(xXIWarpPointerReq);
REQUEST_SIZE_MATCH(xXIWarpPointerReq);
+ if (stuff->deviceid > 0xFF) /* FIXME */
+ {
+ client->errorValue = stuff->deviceid;
+ return BadImplementation;
+ }
+
/* FIXME: panoramix stuff is missing, look at ProcWarpPointer */
rc = dixLookupDevice(&pDev, stuff->deviceid, client, DixWriteAccess);
diff --git a/Xi/xiallowev.c b/Xi/xiallowev.c
index 3077e1a44..dd52c53c6 100644
--- a/Xi/xiallowev.c
+++ b/Xi/xiallowev.c
@@ -65,6 +65,12 @@ ProcXIAllowEvents(ClientPtr client)
REQUEST(xXIAllowEventsReq);
REQUEST_SIZE_MATCH(xXIAllowEventsReq);
+ if (stuff->deviceid > 0xFF) /* FIXME */
+ {
+ client->errorValue = stuff->deviceid;
+ return BadImplementation;
+ }
+
ret = dixLookupDevice(&dev, stuff->deviceid, client, DixGetAttrAccess);
if (ret != Success)
return ret;
diff --git a/Xi/xigrabdev.c b/Xi/xigrabdev.c
index 95beb832b..a825a8906 100644
--- a/Xi/xigrabdev.c
+++ b/Xi/xigrabdev.c
@@ -70,6 +70,9 @@ ProcXIGrabDevice(ClientPtr client)
REQUEST(xXIGrabDeviceReq);
REQUEST_AT_LEAST_SIZE(xXIGrabDeviceReq);
+ if (stuff->deviceid > 0xFF) /* FIXME */
+ return BadImplementation;
+
ret = dixLookupDevice(&dev, stuff->deviceid, client, DixGrabAccess);
if (ret != Success)
return ret;
@@ -129,6 +132,12 @@ ProcXIUngrabDevice(ClientPtr client)
REQUEST(xXIUngrabDeviceReq);
+ if (stuff->deviceid > 0xFF) /* FIXME */
+ {
+ client->errorValue = stuff->deviceid;
+ return BadImplementation;
+ }
+
ret = dixLookupDevice(&dev, stuff->deviceid, client, DixGetAttrAccess);
if (ret != Success)
return ret;
diff --git a/Xi/xipassivegrab.c b/Xi/xipassivegrab.c
index 0c74544e4..25ecc035c 100644
--- a/Xi/xipassivegrab.c
+++ b/Xi/xipassivegrab.c
@@ -90,6 +90,9 @@ ProcXIPassiveGrabDevice(ClientPtr client)
REQUEST(xXIPassiveGrabDeviceReq);
REQUEST_AT_LEAST_SIZE(xXIPassiveGrabDeviceReq);
+ if (stuff->deviceid > 0xFF) /* FIXME */
+ return BadImplementation;
+
if (stuff->deviceid == XIAllDevices)
dev = inputInfo.all_devices;
else if (stuff->deviceid == XIAllMasterDevices)
@@ -260,6 +263,12 @@ ProcXIPassiveUngrabDevice(ClientPtr client)
REQUEST(xXIPassiveUngrabDeviceReq);
REQUEST_AT_LEAST_SIZE(xXIPassiveUngrabDeviceReq);
+ if (stuff->deviceid > 0xFF) /* FIXME */
+ {
+ client->errorValue = stuff->deviceid;
+ return BadImplementation;
+ }
+
rc = dixLookupDevice(&dev, stuff->deviceid, client, DixGrabAccess);
if (rc != Success)
return rc;
diff --git a/Xi/xiproperty.c b/Xi/xiproperty.c
index cd4946026..dc54d10fe 100644
--- a/Xi/xiproperty.c
+++ b/Xi/xiproperty.c
@@ -1102,6 +1102,12 @@ ProcXIListProperties(ClientPtr client)
REQUEST(xXIListPropertiesReq);
REQUEST_SIZE_MATCH(xXIListPropertiesReq);
+ if (stuff->deviceid > 0xFF) /* FIXME */
+ {
+ client->errorValue = stuff->deviceid;
+ return BadImplementation;
+ }
+
rc = dixLookupDevice (&dev, stuff->deviceid, client, DixReadAccess);
if (rc != Success)
return rc;
@@ -1136,6 +1142,12 @@ ProcXIChangeProperty(ClientPtr client)
REQUEST(xXIChangePropertyReq);
REQUEST_AT_LEAST_SIZE(xXIChangePropertyReq);
+
+ if (stuff->deviceid > 0xFF) /* FIXME */
+ {
+ client->errorValue = stuff->deviceid;
+ return BadImplementation;
+ }
UpdateCurrentTime();
rc = dixLookupDevice (&dev, stuff->deviceid, client, DixWriteAccess);
@@ -1164,6 +1176,13 @@ ProcXIDeleteProperty(ClientPtr client)
REQUEST(xXIDeletePropertyReq);
REQUEST_SIZE_MATCH(xXIDeletePropertyReq);
+
+ if (stuff->deviceid > 0xFF) /* FIXME */
+ {
+ client->errorValue = stuff->deviceid;
+ return BadImplementation;
+ }
+
UpdateCurrentTime();
rc = dixLookupDevice (&dev, stuff->deviceid, client, DixWriteAccess);
if (rc != Success)
@@ -1192,6 +1211,13 @@ ProcXIGetProperty(ClientPtr client)
Atom type;
REQUEST_SIZE_MATCH(xXIGetPropertyReq);
+
+ if (stuff->deviceid > 0xFF) /* FIXME */
+ {
+ client->errorValue = stuff->deviceid;
+ return BadImplementation;
+ }
+
if (stuff->delete)
UpdateCurrentTime();
rc = dixLookupDevice (&dev, stuff->deviceid, client,
diff --git a/Xi/xiselectev.c b/Xi/xiselectev.c
index 31e6a77f5..9dbdea72c 100644
--- a/Xi/xiselectev.c
+++ b/Xi/xiselectev.c
@@ -82,6 +82,12 @@ ProcXISelectEvent(ClientPtr client)
num_masks = stuff->num_masks;
while(num_masks--)
{
+ if (evmask->deviceid > 0xFF) /* FIXME */
+ {
+ client->errorValue = evmask->deviceid;
+ return BadImplementation;
+ }
+
if (evmask->deviceid != XIAllDevices &&
evmask->deviceid != XIAllMasterDevices)
rc = dixLookupDevice(&dev, evmask->deviceid, client, DixReadAccess);
diff --git a/Xi/xisetdevfocus.c b/Xi/xisetdevfocus.c
index 32f7e597b..cd1f6a622 100644
--- a/Xi/xisetdevfocus.c
+++ b/Xi/xisetdevfocus.c
@@ -75,6 +75,12 @@ ProcXISetFocus(ClientPtr client)
REQUEST(xXISetFocusReq);
REQUEST_AT_LEAST_SIZE(xXISetFocusReq);
+ if (stuff->deviceid > 0xFF) /* FIXME */
+ {
+ client->errorValue = stuff->deviceid;
+ return BadImplementation;
+ }
+
ret = dixLookupDevice(&dev, stuff->deviceid, client, DixSetFocusAccess);
if (ret != Success)
return ret;
@@ -95,6 +101,12 @@ ProcXIGetFocus(ClientPtr client)
REQUEST(xXIGetFocusReq);
REQUEST_AT_LEAST_SIZE(xXIGetFocusReq);
+ if (stuff->deviceid > 0xFF) /* FIXME */
+ {
+ client->errorValue = stuff->deviceid;
+ return BadImplementation;
+ }
+
ret = dixLookupDevice(&dev, stuff->deviceid, client, DixGetFocusAccess);
if (ret != Success)
return ret;