summaryrefslogtreecommitdiff
path: root/Xi
diff options
context:
space:
mode:
Diffstat (limited to 'Xi')
-rw-r--r--Xi/chgdctl.c6
-rw-r--r--Xi/setdval.c3
-rw-r--r--Xi/setmode.c4
3 files changed, 13 insertions, 0 deletions
diff --git a/Xi/chgdctl.c b/Xi/chgdctl.c
index 31d3a57f3..d078aa248 100644
--- a/Xi/chgdctl.c
+++ b/Xi/chgdctl.c
@@ -122,6 +122,12 @@ ProcXChangeDeviceControl(ClientPtr client)
if (ret != Success)
goto out;
+ /* XTest devices are special, none of the below apply to them anyway */
+ if (IsXTestDevice(dev, NULL)) {
+ ret = BadMatch;
+ goto out;
+ }
+
rep = (xChangeDeviceControlReply) {
.repType = X_Reply,
.RepType = X_ChangeDeviceControl,
diff --git a/Xi/setdval.c b/Xi/setdval.c
index 4c9c99f55..463e4f38c 100644
--- a/Xi/setdval.c
+++ b/Xi/setdval.c
@@ -110,6 +110,9 @@ ProcXSetDeviceValuators(ClientPtr client)
if (dev->valuator == NULL)
return BadMatch;
+ if (IsXTestDevice(dev, NULL))
+ return BadMatch;
+
if (stuff->first_valuator + stuff->num_valuators > dev->valuator->numAxes)
return BadValue;
diff --git a/Xi/setmode.c b/Xi/setmode.c
index 535655257..5ed09136e 100644
--- a/Xi/setmode.c
+++ b/Xi/setmode.c
@@ -104,6 +104,10 @@ ProcXSetDeviceMode(ClientPtr client)
return rc;
if (dev->valuator == NULL)
return BadMatch;
+
+ if (IsXTestDevice(dev, NULL))
+ return BadMatch;
+
if ((dev->deviceGrab.grab) && !SameClient(dev->deviceGrab.grab, client))
rep.status = AlreadyGrabbed;
else