diff options
Diffstat (limited to 'xorg-server/Xi')
-rw-r--r-- | xorg-server/Xi/sendexev.c | 3 | ||||
-rw-r--r-- | xorg-server/Xi/xiquerydevice.c | 5 |
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); |