Xi: use byte-counting macros instead of manual calculation.
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
This commit is contained in:
parent
912402fd71
commit
7dd415aa6a
|
@ -142,7 +142,7 @@ ProcXChangeDeviceControl(ClientPtr client)
|
|||
REQUEST(xChangeDeviceControlReq);
|
||||
REQUEST_AT_LEAST_SIZE(xChangeDeviceControlReq);
|
||||
|
||||
len = stuff->length - (sizeof(xChangeDeviceControlReq) >> 2);
|
||||
len = stuff->length - bytes_to_int32(sizeof(xChangeDeviceControlReq));
|
||||
ret = dixLookupDevice(&dev, stuff->deviceid, client, DixManageAccess);
|
||||
if (ret != Success)
|
||||
goto out;
|
||||
|
@ -155,8 +155,8 @@ ProcXChangeDeviceControl(ClientPtr client)
|
|||
switch (stuff->control) {
|
||||
case DEVICE_RESOLUTION:
|
||||
r = (xDeviceResolutionCtl *) & stuff[1];
|
||||
if ((len < (sizeof(xDeviceResolutionCtl) >> 2)) ||
|
||||
(len != (sizeof(xDeviceResolutionCtl) >> 2) + r->num_valuators)) {
|
||||
if ((len < bytes_to_int32(sizeof(xDeviceResolutionCtl))) ||
|
||||
(len != bytes_to_int32(sizeof(xDeviceResolutionCtl)) + r->num_valuators)) {
|
||||
ret = BadLength;
|
||||
goto out;
|
||||
}
|
||||
|
|
14
Xi/chgfctl.c
14
Xi/chgfctl.c
|
@ -441,14 +441,14 @@ ProcXChangeFeedbackControl(ClientPtr client)
|
|||
REQUEST(xChangeFeedbackControlReq);
|
||||
REQUEST_AT_LEAST_SIZE(xChangeFeedbackControlReq);
|
||||
|
||||
len = stuff->length - (sizeof(xChangeFeedbackControlReq) >> 2);
|
||||
len = stuff->length - bytes_to_int32(sizeof(xChangeFeedbackControlReq));
|
||||
rc = dixLookupDevice(&dev, stuff->deviceid, client, DixManageAccess);
|
||||
if (rc != Success)
|
||||
return rc;
|
||||
|
||||
switch (stuff->feedbackid) {
|
||||
case KbdFeedbackClass:
|
||||
if (len != (sizeof(xKbdFeedbackCtl) >> 2))
|
||||
if (len != bytes_to_int32(sizeof(xKbdFeedbackCtl)))
|
||||
return BadLength;
|
||||
|
||||
for (k = dev->kbdfeed; k; k = k->next)
|
||||
|
@ -457,7 +457,7 @@ ProcXChangeFeedbackControl(ClientPtr client)
|
|||
(xKbdFeedbackCtl *) & stuff[1]);
|
||||
break;
|
||||
case PtrFeedbackClass:
|
||||
if (len != (sizeof(xPtrFeedbackCtl) >> 2))
|
||||
if (len != bytes_to_int32(sizeof(xPtrFeedbackCtl)))
|
||||
return BadLength;
|
||||
|
||||
for (p = dev->ptrfeed; p; p = p->next)
|
||||
|
@ -473,7 +473,7 @@ ProcXChangeFeedbackControl(ClientPtr client)
|
|||
if (client->swapped) {
|
||||
swaps(&f->num_keysyms, n);
|
||||
}
|
||||
if (len != ((sizeof(xStringFeedbackCtl) >> 2) + f->num_keysyms))
|
||||
if (len != (bytes_to_int32(sizeof(xStringFeedbackCtl)) + f->num_keysyms))
|
||||
return BadLength;
|
||||
|
||||
for (s = dev->stringfeed; s; s = s->next)
|
||||
|
@ -483,7 +483,7 @@ ProcXChangeFeedbackControl(ClientPtr client)
|
|||
break;
|
||||
}
|
||||
case IntegerFeedbackClass:
|
||||
if (len != (sizeof(xIntegerFeedbackCtl) >> 2))
|
||||
if (len != bytes_to_int32(sizeof(xIntegerFeedbackCtl)))
|
||||
return BadLength;
|
||||
|
||||
for (i = dev->intfeed; i; i = i->next)
|
||||
|
@ -492,7 +492,7 @@ ProcXChangeFeedbackControl(ClientPtr client)
|
|||
(xIntegerFeedbackCtl *)&stuff[1]);
|
||||
break;
|
||||
case LedFeedbackClass:
|
||||
if (len != (sizeof(xLedFeedbackCtl) >> 2))
|
||||
if (len != bytes_to_int32(sizeof(xLedFeedbackCtl)))
|
||||
return BadLength;
|
||||
|
||||
for (l = dev->leds; l; l = l->next)
|
||||
|
@ -501,7 +501,7 @@ ProcXChangeFeedbackControl(ClientPtr client)
|
|||
(xLedFeedbackCtl *) & stuff[1]);
|
||||
break;
|
||||
case BellFeedbackClass:
|
||||
if (len != (sizeof(xBellFeedbackCtl) >> 2))
|
||||
if (len != bytes_to_int32(sizeof(xBellFeedbackCtl)))
|
||||
return BadLength;
|
||||
|
||||
for (b = dev->bell; b; b = b->next)
|
||||
|
|
|
@ -107,7 +107,7 @@ ProcXChangeDeviceKeyMapping(ClientPtr client)
|
|||
ret = dixLookupDevice(&dev, stuff->deviceid, client, DixManageAccess);
|
||||
if (ret != Success)
|
||||
return ret;
|
||||
len = stuff->length - (sizeof(xChangeDeviceKeyMappingReq) >> 2);
|
||||
len = stuff->length - bytes_to_int32(sizeof(xChangeDeviceKeyMappingReq));
|
||||
|
||||
ret = ChangeKeyMapping(client, dev, len, DeviceMappingNotify,
|
||||
stuff->firstKeyCode, stuff->keyCodes,
|
||||
|
|
|
@ -104,7 +104,7 @@ ProcXChangeDeviceDontPropagateList(ClientPtr client)
|
|||
REQUEST(xChangeDeviceDontPropagateListReq);
|
||||
REQUEST_AT_LEAST_SIZE(xChangeDeviceDontPropagateListReq);
|
||||
|
||||
if (stuff->length != (sizeof(xChangeDeviceDontPropagateListReq) >> 2) +
|
||||
if (stuff->length != bytes_to_int32(sizeof(xChangeDeviceDontPropagateListReq)) +
|
||||
stuff->count)
|
||||
return BadLength;
|
||||
|
||||
|
|
|
@ -686,7 +686,7 @@ XISendDeviceChangedEvent(DeviceIntPtr device, DeviceIntPtr master, DeviceChanged
|
|||
{
|
||||
len += sizeof(xXIButtonInfo);
|
||||
len += dce->buttons.num_buttons * sizeof(Atom); /* button names */
|
||||
len += ((((dce->buttons.num_buttons + 7)/8) + 3)/4) * 4;
|
||||
len += pad_to_int32(bits_to_bytes(dce->buttons.num_buttons));
|
||||
}
|
||||
if (dce->num_valuators)
|
||||
len += sizeof(xXIValuatorInfo) * dce->num_valuators;
|
||||
|
@ -714,7 +714,7 @@ XISendDeviceChangedEvent(DeviceIntPtr device, DeviceIntPtr master, DeviceChanged
|
|||
dcce->sourceid = device->id;
|
||||
dcce->reason = (dce->flags & DEVCHANGE_DEVICE_CHANGE) ? XIDeviceChange : XISlaveSwitch;
|
||||
dcce->num_classes = 0;
|
||||
dcce->length = (len - sizeof(xEvent))/4;
|
||||
dcce->length = bytes_to_int32(len - sizeof(xEvent));
|
||||
|
||||
ptr = (char*)&dcce[1];
|
||||
if (dce->buttons.num_buttons)
|
||||
|
@ -1249,15 +1249,15 @@ DeviceFocusEvent(DeviceIntPtr dev, int type, int mode, int detail,
|
|||
mouse = (IsMaster(dev) || dev->u.master) ? GetMaster(dev, MASTER_POINTER) : dev;
|
||||
|
||||
/* XI 2 event */
|
||||
btlen = (mouse->button) ? (mouse->button->numButtons + 7)/8 : 0;
|
||||
btlen = (btlen + 3)/4;
|
||||
btlen = (mouse->button) ? bits_to_bytes(mouse->button->numButtons) : 0;
|
||||
btlen = bytes_to_int32(btlen);
|
||||
len = sizeof(xXIFocusInEvent) + btlen * 4;
|
||||
|
||||
xi2event = xcalloc(1, len);
|
||||
xi2event->type = GenericEvent;
|
||||
xi2event->extension = IReqCode;
|
||||
xi2event->evtype = type;
|
||||
xi2event->length = (len - sizeof(xEvent))/4;
|
||||
xi2event->length = bytes_to_int32(len - sizeof(xEvent));
|
||||
xi2event->buttons_len = btlen;
|
||||
xi2event->detail = detail;
|
||||
xi2event->time = currentTime.milliseconds;
|
||||
|
|
|
@ -109,7 +109,7 @@ ProcXGetDeviceButtonMapping(ClientPtr client)
|
|||
return BadMatch;
|
||||
|
||||
rep.nElts = b->numButtons;
|
||||
rep.length = (rep.nElts + (4 - 1)) / 4;
|
||||
rep.length = bytes_to_int32(rep.nElts);
|
||||
WriteReplyToClient(client, sizeof(xGetDeviceButtonMappingReply), &rep);
|
||||
(void)WriteToClient(client, rep.nElts, (char *)&b->map[1]);
|
||||
return Success;
|
||||
|
|
|
@ -306,7 +306,7 @@ ProcXGetDeviceControl(ClientPtr client)
|
|||
break;
|
||||
}
|
||||
|
||||
rep.length = (total_length + 3) >> 2;
|
||||
rep.length = bytes_to_int32(total_length);
|
||||
WriteReplyToClient(client, sizeof(xGetDeviceControlReply), &rep);
|
||||
WriteToClient(client, total_length, savbuf);
|
||||
xfree(savbuf);
|
||||
|
|
|
@ -358,7 +358,7 @@ ProcXGetFeedbackControl(ClientPtr client)
|
|||
for (b = dev->bell; b; b = b->next)
|
||||
CopySwapBellFeedback(client, b, &buf);
|
||||
|
||||
rep.length = (total_length + 3) >> 2;
|
||||
rep.length = bytes_to_int32(total_length);
|
||||
WriteReplyToClient(client, sizeof(xGetFeedbackControlReply), &rep);
|
||||
WriteToClient(client, total_length, savbuf);
|
||||
xfree(savbuf);
|
||||
|
|
|
@ -120,7 +120,7 @@ ProcXGetDeviceDontPropagateList(ClientPtr client)
|
|||
if (count) {
|
||||
rep.count = count;
|
||||
buf = (XEventClass *) xalloc(rep.count * sizeof(XEventClass));
|
||||
rep.length = (rep.count * sizeof(XEventClass) + 3) >> 2;
|
||||
rep.length = bytes_to_int32(rep.count * sizeof(XEventClass));
|
||||
|
||||
tbuf = buf;
|
||||
for (i = 0; i < EMASKSIZE; i++)
|
||||
|
|
|
@ -131,7 +131,7 @@ ProcXGetSelectedExtensionEvents(ClientPtr client)
|
|||
|
||||
total_length = (rep.all_clients_count + rep.this_client_count) *
|
||||
sizeof(XEventClass);
|
||||
rep.length = (total_length + 3) >> 2;
|
||||
rep.length = bytes_to_int32(total_length);
|
||||
buf = (XEventClass *) xalloc(total_length);
|
||||
|
||||
tclient = buf;
|
||||
|
|
|
@ -96,8 +96,8 @@ ProcXGetExtensionVersion(ClientPtr client)
|
|||
REQUEST(xGetExtensionVersionReq);
|
||||
REQUEST_AT_LEAST_SIZE(xGetExtensionVersionReq);
|
||||
|
||||
if (stuff->length != (sizeof(xGetExtensionVersionReq) +
|
||||
stuff->nbytes + 3) >> 2)
|
||||
if (stuff->length != bytes_to_int32(sizeof(xGetExtensionVersionReq) +
|
||||
stuff->nbytes))
|
||||
return BadLength;
|
||||
|
||||
memset(&rep, 0, sizeof(xGetExtensionVersionReply));
|
||||
|
|
|
@ -84,7 +84,7 @@ SProcXGrabDevice(ClientPtr client)
|
|||
swapl(&stuff->time, n);
|
||||
swaps(&stuff->event_count, n);
|
||||
|
||||
if (stuff->length != (sizeof(xGrabDeviceReq) >> 2) + stuff->event_count)
|
||||
if (stuff->length != bytes_to_int32(sizeof(xGrabDeviceReq)) + stuff->event_count)
|
||||
return BadLength;
|
||||
|
||||
SwapLongs((CARD32 *) (&stuff[1]), stuff->event_count);
|
||||
|
@ -110,7 +110,7 @@ ProcXGrabDevice(ClientPtr client)
|
|||
REQUEST(xGrabDeviceReq);
|
||||
REQUEST_AT_LEAST_SIZE(xGrabDeviceReq);
|
||||
|
||||
if (stuff->length != (sizeof(xGrabDeviceReq) >> 2) + stuff->event_count)
|
||||
if (stuff->length != bytes_to_int32(sizeof(xGrabDeviceReq)) + stuff->event_count)
|
||||
return BadLength;
|
||||
|
||||
rep.repType = X_Reply;
|
||||
|
|
|
@ -110,7 +110,7 @@ ProcXGrabDeviceButton(ClientPtr client)
|
|||
REQUEST_AT_LEAST_SIZE(xGrabDeviceButtonReq);
|
||||
|
||||
if (stuff->length !=
|
||||
(sizeof(xGrabDeviceButtonReq) >> 2) + stuff->event_count)
|
||||
bytes_to_int32(sizeof(xGrabDeviceButtonReq)) + stuff->event_count)
|
||||
return BadLength;
|
||||
|
||||
ret = dixLookupDevice(&dev, stuff->grabbed_device, client, DixGrabAccess);
|
||||
|
|
|
@ -107,7 +107,7 @@ ProcXGrabDeviceKey(ClientPtr client)
|
|||
REQUEST(xGrabDeviceKeyReq);
|
||||
REQUEST_AT_LEAST_SIZE(xGrabDeviceKeyReq);
|
||||
|
||||
if (stuff->length != (sizeof(xGrabDeviceKeyReq) >> 2) + stuff->event_count)
|
||||
if (stuff->length != bytes_to_int32(sizeof(xGrabDeviceKeyReq)) + stuff->event_count)
|
||||
return BadLength;
|
||||
|
||||
ret = dixLookupDevice(&dev, stuff->grabbed_device, client, DixGrabAccess);
|
||||
|
|
|
@ -136,7 +136,7 @@ ProcXGetDeviceMotionEvents(ClientPtr client)
|
|||
(ScreenPtr) NULL, FALSE);
|
||||
}
|
||||
if (rep.nEvents > 0) {
|
||||
length = (rep.nEvents * size + 3) >> 2;
|
||||
length = bytes_to_int32(rep.nEvents * size);
|
||||
rep.length = length;
|
||||
}
|
||||
nEvents = rep.nEvents;
|
||||
|
|
|
@ -409,7 +409,7 @@ ProcXListInputDevices(ClientPtr client)
|
|||
ListDeviceInfo(client, d, dev++, &devbuf, &classbuf, &namebuf);
|
||||
}
|
||||
rep.ndevices = numdevs;
|
||||
rep.length = (total_length + 3) >> 2;
|
||||
rep.length = bytes_to_int32(total_length);
|
||||
WriteReplyToClient(client, sizeof(xListInputDevicesReply), &rep);
|
||||
WriteToClient(client, total_length, savbuf);
|
||||
xfree(savbuf);
|
||||
|
|
|
@ -150,7 +150,7 @@ ProcXOpenDevice(ClientPtr client)
|
|||
}
|
||||
evbase[j].class = OtherClass;
|
||||
evbase[j++].event_type_base = event_base[OtherClass];
|
||||
rep.length = (j * sizeof(xInputClassInfo) + 3) >> 2;
|
||||
rep.length = bytes_to_int32(j * sizeof(xInputClassInfo));
|
||||
rep.num_classes = j;
|
||||
WriteReplyToClient(client, sizeof(xOpenDeviceReply), &rep);
|
||||
WriteToClient(client, j * sizeof(xInputClassInfo), (char *)evbase);
|
||||
|
|
|
@ -161,7 +161,7 @@ ProcXQueryDeviceState(ClientPtr client)
|
|||
}
|
||||
|
||||
rep.num_classes = num_classes;
|
||||
rep.length = (total_length + 3) >> 2;
|
||||
rep.length = bytes_to_int32(total_length);
|
||||
WriteReplyToClient(client, sizeof(xQueryDeviceStateReply), &rep);
|
||||
if (total_length > 0)
|
||||
WriteToClient(client, total_length, savbuf);
|
||||
|
|
|
@ -154,7 +154,7 @@ ProcXSelectExtensionEvent(ClientPtr client)
|
|||
REQUEST(xSelectExtensionEventReq);
|
||||
REQUEST_AT_LEAST_SIZE(xSelectExtensionEventReq);
|
||||
|
||||
if (stuff->length != (sizeof(xSelectExtensionEventReq) >> 2) + stuff->count)
|
||||
if (stuff->length != bytes_to_int32(sizeof(xSelectExtensionEventReq)) + stuff->count)
|
||||
return BadLength;
|
||||
|
||||
ret = dixLookupWindow(&pWin, stuff->window, client, DixReceiveAccess);
|
||||
|
|
|
@ -89,8 +89,8 @@ SProcXSendExtensionEvent(ClientPtr client)
|
|||
swapl(&stuff->destination, n);
|
||||
swaps(&stuff->count, n);
|
||||
|
||||
if (stuff->length != (sizeof(xSendExtensionEventReq) >> 2) + stuff->count +
|
||||
(stuff->num_events * (sizeof(xEvent) >> 2)))
|
||||
if (stuff->length != bytes_to_int32(sizeof(xSendExtensionEventReq)) + stuff->count +
|
||||
bytes_to_int32(stuff->num_events * sizeof(xEvent)))
|
||||
return BadLength;
|
||||
|
||||
eventP = (xEvent *) & stuff[1];
|
||||
|
@ -126,8 +126,8 @@ ProcXSendExtensionEvent(ClientPtr client)
|
|||
REQUEST(xSendExtensionEventReq);
|
||||
REQUEST_AT_LEAST_SIZE(xSendExtensionEventReq);
|
||||
|
||||
if (stuff->length != (sizeof(xSendExtensionEventReq) >> 2) + stuff->count +
|
||||
(stuff->num_events * (sizeof(xEvent) >> 2)))
|
||||
if (stuff->length != bytes_to_int32(sizeof(xSendExtensionEventReq)) + stuff->count +
|
||||
(stuff->num_events * bytes_to_int32(sizeof(xEvent))))
|
||||
return BadLength;
|
||||
|
||||
ret = dixLookupDevice(&dev, stuff->deviceid, client, DixWriteAccess);
|
||||
|
|
|
@ -94,8 +94,8 @@ ProcXSetDeviceButtonMapping(ClientPtr client)
|
|||
REQUEST(xSetDeviceButtonMappingReq);
|
||||
REQUEST_AT_LEAST_SIZE(xSetDeviceButtonMappingReq);
|
||||
|
||||
if (stuff->length != (sizeof(xSetDeviceButtonMappingReq) +
|
||||
stuff->map_length + 3) >> 2)
|
||||
if (stuff->length !=
|
||||
bytes_to_int32(sizeof(xSetDeviceButtonMappingReq) + stuff->map_length))
|
||||
return BadLength;
|
||||
|
||||
ret = dixLookupDevice(&dev, stuff->deviceid, client, DixManageAccess);
|
||||
|
|
|
@ -100,7 +100,7 @@ ProcXSetDeviceValuators(ClientPtr client)
|
|||
rep.status = Success;
|
||||
rep.sequenceNumber = client->sequence;
|
||||
|
||||
if (stuff->length != (sizeof(xSetDeviceValuatorsReq) >> 2) +
|
||||
if (stuff->length != bytes_to_int32(sizeof(xSetDeviceValuatorsReq)) +
|
||||
stuff->num_valuators)
|
||||
return BadLength;
|
||||
|
||||
|
|
|
@ -96,8 +96,8 @@ ProcXSetDeviceModifierMapping(ClientPtr client)
|
|||
REQUEST(xSetDeviceModifierMappingReq);
|
||||
REQUEST_AT_LEAST_SIZE(xSetDeviceModifierMappingReq);
|
||||
|
||||
if (stuff->length != ((sizeof(xSetDeviceModifierMappingReq) >> 2) +
|
||||
(stuff->numKeyPerModifier << 1)))
|
||||
if (stuff->length != bytes_to_int32(sizeof(xSetDeviceModifierMappingReq)) +
|
||||
(stuff->numKeyPerModifier << 1))
|
||||
return BadLength;
|
||||
|
||||
rep.repType = X_Reply;
|
||||
|
|
|
@ -112,7 +112,7 @@ void XISendDeviceHierarchyEvent(int flags[MAXDEVICES])
|
|||
}
|
||||
}
|
||||
|
||||
ev->length = (ev->num_info * sizeof(xXIHierarchyInfo))/4;
|
||||
ev->length = bytes_to_int32(ev->num_info * sizeof(xXIHierarchyInfo));
|
||||
|
||||
dummyDev.id = XIAllDevices;
|
||||
SendEventToAllWindows(&dummyDev, (XI_HierarchyChangedMask >> 8), (xEvent*)ev, 1);
|
||||
|
|
|
@ -903,7 +903,7 @@ ProcXChangeDeviceProperty (ClientPtr client)
|
|||
stuff->format, stuff->mode, stuff->nUnits);
|
||||
|
||||
len = stuff->nUnits;
|
||||
if (len > ((0xffffffff - sizeof(xChangeDevicePropertyReq)) >> 2))
|
||||
if (len > (bytes_to_int32(0xffffffff - sizeof(xChangeDevicePropertyReq))))
|
||||
return BadLength;
|
||||
|
||||
totalSize = len * (stuff->format/8);
|
||||
|
@ -972,7 +972,7 @@ ProcXGetDeviceProperty (ClientPtr client)
|
|||
reply.format = format;
|
||||
reply.bytesAfter = bytes_after;
|
||||
reply.propertyType = type;
|
||||
reply.length = (length + 3) >> 2;
|
||||
reply.length = bytes_to_int32(length);
|
||||
|
||||
if (stuff->delete && (reply.bytesAfter == 0))
|
||||
send_property_event(dev, stuff->property, XIPropertyDeleted);
|
||||
|
@ -1146,7 +1146,7 @@ ProcXIChangeProperty(ClientPtr client)
|
|||
rc = check_change_property(client, stuff->property, stuff->type,
|
||||
stuff->format, stuff->mode, stuff->num_items);
|
||||
len = stuff->num_items;
|
||||
if (len > ((0xffffffff - sizeof(xXIChangePropertyReq)) >> 2))
|
||||
if (len > bytes_to_int32(0xffffffff - sizeof(xXIChangePropertyReq)))
|
||||
return BadLength;
|
||||
|
||||
totalSize = len * (stuff->format/8);
|
||||
|
@ -1215,7 +1215,7 @@ ProcXIGetProperty(ClientPtr client)
|
|||
reply.format = format;
|
||||
reply.bytes_after = bytes_after;
|
||||
reply.type = type;
|
||||
reply.length = (length + 3)/4;
|
||||
reply.length = bytes_to_int32(length);
|
||||
|
||||
if (length && stuff->delete && (reply.bytes_after == 0))
|
||||
send_property_event(dev, stuff->property, XIPropertyDeleted);
|
||||
|
|
|
@ -200,7 +200,7 @@ SizeDeviceInfo(DeviceIntPtr dev)
|
|||
int len = sizeof(xXIDeviceInfo);
|
||||
|
||||
/* 4-padded name */
|
||||
len += (((strlen(dev->name) + 3)/4)*4);
|
||||
len += pad_to_int32(strlen(dev->name));
|
||||
|
||||
return len + SizeDeviceClasses(dev);
|
||||
|
||||
|
@ -218,7 +218,7 @@ SizeDeviceClasses(DeviceIntPtr dev)
|
|||
{
|
||||
len += sizeof(xXIButtonInfo);
|
||||
len += dev->button->numButtons * sizeof(Atom);
|
||||
len += ((((dev->button->numButtons + 7)/8) + 3)/4) * 4;
|
||||
len += pad_to_int32(bits_to_bytes(dev->button->numButtons));
|
||||
}
|
||||
|
||||
if (dev->key)
|
||||
|
@ -246,11 +246,12 @@ ListButtonInfo(DeviceIntPtr dev, xXIButtonInfo* info)
|
|||
int mask_len;
|
||||
int i;
|
||||
|
||||
mask_len = (((dev->button->numButtons + 7)/8) + 3)/4; /* 4-byte units*/
|
||||
mask_len = bytes_to_int32(bits_to_bytes(dev->button->numButtons));
|
||||
|
||||
info->type = ButtonClass;
|
||||
info->num_buttons = dev->button->numButtons;
|
||||
info->length = sizeof(xXIButtonInfo)/4 + mask_len + info->num_buttons;
|
||||
info->length = bytes_to_int32(sizeof(xXIButtonInfo)) +
|
||||
info->num_buttons + mask_len;
|
||||
info->sourceid = dev->button->sourceid;
|
||||
|
||||
bits = (unsigned char*)&info[1];
|
||||
|
@ -400,7 +401,7 @@ ListDeviceInfo(DeviceIntPtr dev, xXIDeviceInfo* info)
|
|||
info->enabled = dev->enabled;
|
||||
total_len = sizeof(xXIDeviceInfo);
|
||||
|
||||
len = ((info->name_len + 3)/4) * 4;
|
||||
len = pad_to_int32(info->name_len);
|
||||
memset(any, 0, len);
|
||||
strncpy(any, dev->name, info->name_len);
|
||||
any += len;
|
||||
|
@ -456,7 +457,7 @@ SwapDeviceInfo(DeviceIntPtr dev, xXIDeviceInfo* info)
|
|||
int i;
|
||||
|
||||
/* Skip over name */
|
||||
any += (((info->name_len + 3)/4) * 4);
|
||||
any += pad_to_int32(info->name_len);
|
||||
|
||||
for (i = 0; i < info->num_classes; i++)
|
||||
{
|
||||
|
|
|
@ -126,7 +126,7 @@ ProcXIQueryPointer(ClientPtr client)
|
|||
if (pDev->button)
|
||||
{
|
||||
int i, down;
|
||||
rep.buttons_len = (((pDev->button->numButtons + 7)/8) + 3)/4;
|
||||
rep.buttons_len = bytes_to_int32(bits_to_bytes(pDev->button->numButtons));
|
||||
rep.length += rep.buttons_len;
|
||||
buttons = xcalloc(rep.buttons_len, 4);
|
||||
if (!buttons)
|
||||
|
|
|
@ -196,7 +196,7 @@ ProcXIGetSelectedEvents(ClientPtr client)
|
|||
return Success;
|
||||
}
|
||||
|
||||
buffer = xcalloc(MAXDEVICES, sizeof(xXIEventMask) + ((XI2MASKSIZE + 3)/4) * 4);
|
||||
buffer = xcalloc(MAXDEVICES, sizeof(xXIEventMask) + pad_to_int32(XI2MASKSIZE));
|
||||
if (!buffer)
|
||||
return BadAlloc;
|
||||
|
||||
|
|
Loading…
Reference in New Issue
Block a user