aboutsummaryrefslogtreecommitdiff
path: root/xorg-server/Xi
diff options
context:
space:
mode:
Diffstat (limited to 'xorg-server/Xi')
-rw-r--r--xorg-server/Xi/sendexev.c3
-rw-r--r--xorg-server/Xi/xiquerydevice.c5
2 files changed, 6 insertions, 2 deletions
diff --git a/xorg-server/Xi/sendexev.c b/xorg-server/Xi/sendexev.c
index 8629dd202..bd96d74c7 100644
--- a/xorg-server/Xi/sendexev.c
+++ b/xorg-server/Xi/sendexev.c
@@ -138,9 +138,10 @@ ProcXSendExtensionEvent(ClientPtr client)
first = ((xEvent *) & stuff[1]);
if (!((EXTENSION_EVENT_BASE <= first->u.u.type) &&
- (first->u.u.type < lastEvent)))
+ (first->u.u.type < lastEvent))) {
client->errorValue = first->u.u.type;
return BadValue;
+ }
list = (XEventClass *) (first + stuff->num_events);
if ((ret = CreateMaskFromList(client, list, stuff->count, tmp, dev,
diff --git a/xorg-server/Xi/xiquerydevice.c b/xorg-server/Xi/xiquerydevice.c
index 435868de2..47ab688fd 100644
--- a/xorg-server/Xi/xiquerydevice.c
+++ b/xorg-server/Xi/xiquerydevice.c
@@ -247,6 +247,9 @@ ListButtonInfo(DeviceIntPtr dev, xXIButtonInfo* info, Bool reportState)
int mask_len;
int i;
+ if (!dev || !dev->button)
+ return 0;
+
mask_len = bytes_to_int32(bits_to_bytes(dev->button->numButtons));
info->type = ButtonClass;
@@ -259,7 +262,7 @@ ListButtonInfo(DeviceIntPtr dev, xXIButtonInfo* info, Bool reportState)
memset(bits, 0, mask_len * 4);
if (reportState)
- for (i = 0; dev && dev->button && i < dev->button->numButtons; i++)
+ for (i = 0; i < dev->button->numButtons; i++)
if (BitIsOn(dev->button->down, i))
SetBit(bits, i);