0a43197
--- xorg-server-1.1.1/Xi/chgprop.c.da	2006-07-06 04:31:36.000000000 +1000
0a43197
+++ xorg-server-1.1.1/Xi/chgprop.c	2007-12-14 11:52:27.000000000 +1000
0a43197
@@ -81,19 +81,15 @@
0a43197
 SProcXChangeDeviceDontPropagateList(register ClientPtr client)
0a43197
 {
0a43197
     register char n;
0a43197
-    register long *p;
0a43197
-    register int i;
0a43197
 
0a43197
     REQUEST(xChangeDeviceDontPropagateListReq);
0a43197
     swaps(&stuff->length, n);
0a43197
     REQUEST_AT_LEAST_SIZE(xChangeDeviceDontPropagateListReq);
0a43197
     swapl(&stuff->window, n);
0a43197
     swaps(&stuff->count, n);
0a43197
-    p = (long *)&stuff[1];
0a43197
-    for (i = 0; i < stuff->count; i++) {
0a43197
-	swapl(p, n);
0a43197
-	p++;
0a43197
-    }
0a43197
+    REQUEST_FIXED_SIZE(xChangeDeviceDontPropagateListReq,
0a43197
+                      stuff->count * sizeof(CARD32));
0a43197
+    SwapLongs((CARD32 *) (&stuff[1]), stuff->count);
0a43197
     return (ProcXChangeDeviceDontPropagateList(client));
0a43197
 }
0a43197
 
0a43197
--- xorg-server-1.1.1/Xi/sendexev.c.da	2006-07-06 04:31:36.000000000 +1000
0a43197
+++ xorg-server-1.1.1/Xi/sendexev.c	2007-12-14 11:54:20.000000000 +1000
0a43197
@@ -83,7 +83,7 @@
0a43197
 SProcXSendExtensionEvent(register ClientPtr client)
0a43197
 {
0a43197
     register char n;
0a43197
-    register long *p;
0a43197
+    register CARD32 *p;
0a43197
     register int i;
0a43197
     xEvent eventT;
0a43197
     xEvent *eventP;
0a43197
@@ -94,6 +94,11 @@
0a43197
     REQUEST_AT_LEAST_SIZE(xSendExtensionEventReq);
0a43197
     swapl(&stuff->destination, n);
0a43197
     swaps(&stuff->count, n);
0a43197
+
0a43197
+    if (stuff->length != (sizeof(xSendExtensionEventReq) >> 2) + stuff->count +
0a43197
+	(stuff->num_events * (sizeof(xEvent) >> 2)))
0a43197
+	return BadLength;
0a43197
+    
0a43197
     eventP = (xEvent *) & stuff[1];
0a43197
     for (i = 0; i < stuff->num_events; i++, eventP++) {
0a43197
 	proc = EventSwapVector[eventP->u.u.type & 0177];
0a43197
@@ -103,11 +108,8 @@
0a43197
 	*eventP = eventT;
0a43197
     }
0a43197
 
0a43197
-    p = (long *)(((xEvent *) & stuff[1]) + stuff->num_events);
0a43197
-    for (i = 0; i < stuff->count; i++) {
0a43197
-	swapl(p, n);
0a43197
-	p++;
0a43197
-    }
0a43197
+    p = (CARD32 *)(((xEvent *) & stuff[1]) + stuff->num_events);
0a43197
+    SwapLongs(p, stuff->count);
0a43197
     return (ProcXSendExtensionEvent(client));
0a43197
 }
0a43197
 
0a43197
--- xorg-server-1.1.1/Xi/chgkmap.c.da	2006-07-06 04:31:36.000000000 +1000
0a43197
+++ xorg-server-1.1.1/Xi/chgkmap.c	2007-12-14 11:52:00.000000000 +1000
0a43197
@@ -79,18 +79,14 @@
0a43197
 SProcXChangeDeviceKeyMapping(register ClientPtr client)
0a43197
 {
0a43197
     register char n;
0a43197
-    register long *p;
0a43197
-    register int i, count;
0a43197
+    register unsigned int count;
0a43197
 
0a43197
     REQUEST(xChangeDeviceKeyMappingReq);
0a43197
     swaps(&stuff->length, n);
0a43197
     REQUEST_AT_LEAST_SIZE(xChangeDeviceKeyMappingReq);
0a43197
-    p = (long *)&stuff[1];
0a43197
     count = stuff->keyCodes * stuff->keySymsPerKeyCode;
0a43197
-    for (i = 0; i < count; i++) {
0a43197
-	swapl(p, n);
0a43197
-	p++;
0a43197
-    }
0a43197
+    REQUEST_FIXED_SIZE(xChangeDeviceKeyMappingReq, count * sizeof(CARD32));
0a43197
+    SwapLongs((CARD32 *) (&stuff[1]), count);
0a43197
     return (ProcXChangeDeviceKeyMapping(client));
0a43197
 }
0a43197
 
0a43197
@@ -106,10 +102,14 @@
0a43197
     int ret;
0a43197
     unsigned len;
0a43197
     DeviceIntPtr dev;
0a43197
+    unsigned int count;
0a43197
 
0a43197
     REQUEST(xChangeDeviceKeyMappingReq);
0a43197
     REQUEST_AT_LEAST_SIZE(xChangeDeviceKeyMappingReq);
0a43197
 
0a43197
+    count = stuff->keyCodes * stuff->keySymsPerKeyCode;
0a43197
+    REQUEST_FIXED_SIZE(xChangeDeviceKeyMappingReq, count * sizeof(CARD32));
0a43197
+    
0a43197
     dev = LookupDeviceIntRec(stuff->deviceid);
0a43197
     if (dev == NULL) {
0a43197
 	SendErrorToClient(client, IReqCode, X_ChangeDeviceKeyMapping, 0,
0a43197
--- xorg-server-1.1.1/Xi/grabdevb.c.da	2006-07-06 04:31:36.000000000 +1000
0a43197
+++ xorg-server-1.1.1/Xi/grabdevb.c	2007-12-14 11:53:03.000000000 +1000
0a43197
@@ -80,8 +80,6 @@
0a43197
 SProcXGrabDeviceButton(register ClientPtr client)
0a43197
 {
0a43197
     register char n;
0a43197
-    register long *p;
0a43197
-    register int i;
0a43197
 
0a43197
     REQUEST(xGrabDeviceButtonReq);
0a43197
     swaps(&stuff->length, n);
0a43197
@@ -89,11 +87,9 @@
0a43197
     swapl(&stuff->grabWindow, n);
0a43197
     swaps(&stuff->modifiers, n);
0a43197
     swaps(&stuff->event_count, n);
0a43197
-    p = (long *)&stuff[1];
0a43197
-    for (i = 0; i < stuff->event_count; i++) {
0a43197
-	swapl(p, n);
0a43197
-	p++;
0a43197
-    }
0a43197
+    REQUEST_FIXED_SIZE(xGrabDeviceButtonReq,
0a43197
+		       stuff->event_count * sizeof(CARD32));
0a43197
+    SwapLongs((CARD32 *) (&stuff[1]), stuff->event_count);
0a43197
 
0a43197
     return (ProcXGrabDeviceButton(client));
0a43197
 }
0a43197
--- xorg-server-1.1.1/Xi/selectev.c.da	2006-07-06 04:31:36.000000000 +1000
0a43197
+++ xorg-server-1.1.1/Xi/selectev.c	2007-12-14 11:53:54.000000000 +1000
0a43197
@@ -84,19 +84,15 @@
0a43197
 SProcXSelectExtensionEvent(register ClientPtr client)
0a43197
 {
0a43197
     register char n;
0a43197
-    register long *p;
0a43197
-    register int i;
0a43197
 
0a43197
     REQUEST(xSelectExtensionEventReq);
0a43197
     swaps(&stuff->length, n);
0a43197
     REQUEST_AT_LEAST_SIZE(xSelectExtensionEventReq);
0a43197
     swapl(&stuff->window, n);
0a43197
     swaps(&stuff->count, n);
0a43197
-    p = (long *)&stuff[1];
0a43197
-    for (i = 0; i < stuff->count; i++) {
0a43197
-	swapl(p, n);
0a43197
-	p++;
0a43197
-    }
0a43197
+    REQUEST_FIXED_SIZE(xSelectExtensionEventReq,
0a43197
+                      stuff->count * sizeof(CARD32));
0a43197
+    SwapLongs((CARD32 *) (&stuff[1]), stuff->count);
0a43197
     return (ProcXSelectExtensionEvent(client));
0a43197
 }
0a43197
 
0a43197
--- xorg-server-1.1.1/Xi/grabdevk.c.da	2006-07-06 04:31:36.000000000 +1000
0a43197
+++ xorg-server-1.1.1/Xi/grabdevk.c	2007-12-14 11:53:15.000000000 +1000
0a43197
@@ -80,8 +80,6 @@
0a43197
 SProcXGrabDeviceKey(register ClientPtr client)
0a43197
 {
0a43197
     register char n;
0a43197
-    register long *p;
0a43197
-    register int i;
0a43197
 
0a43197
     REQUEST(xGrabDeviceKeyReq);
0a43197
     swaps(&stuff->length, n);
0a43197
@@ -89,11 +87,8 @@
0a43197
     swapl(&stuff->grabWindow, n);
0a43197
     swaps(&stuff->modifiers, n);
0a43197
     swaps(&stuff->event_count, n);
0a43197
-    p = (long *)&stuff[1];
0a43197
-    for (i = 0; i < stuff->event_count; i++) {
0a43197
-	swapl(p, n);
0a43197
-	p++;
0a43197
-    }
0a43197
+    REQUEST_FIXED_SIZE(xGrabDeviceKeyReq, stuff->event_count * sizeof(CARD32));
0a43197
+    SwapLongs((CARD32 *) (&stuff[1]), stuff->event_count);
0a43197
     return (ProcXGrabDeviceKey(client));
0a43197
 }
0a43197
 
0a43197
--- xorg-server-1.1.1/Xi/grabdev.c.da	2006-07-06 04:31:36.000000000 +1000
0a43197
+++ xorg-server-1.1.1/Xi/grabdev.c	2007-12-14 11:52:47.000000000 +1000
0a43197
@@ -82,8 +82,6 @@
0a43197
 SProcXGrabDevice(register ClientPtr client)
0a43197
 {
0a43197
     register char n;
0a43197
-    register long *p;
0a43197
-    register int i;
0a43197
 
0a43197
     REQUEST(xGrabDeviceReq);
0a43197
     swaps(&stuff->length, n);
0a43197
@@ -91,11 +89,11 @@
0a43197
     swapl(&stuff->grabWindow, n);
0a43197
     swapl(&stuff->time, n);
0a43197
     swaps(&stuff->event_count, n);
0a43197
-    p = (long *)&stuff[1];
0a43197
-    for (i = 0; i < stuff->event_count; i++) {
0a43197
-	swapl(p, n);
0a43197
-	p++;
0a43197
-    }
0a43197
+
0a43197
+    if (stuff->length != (sizeof(xGrabDeviceReq) >> 2) + stuff->event_count)
0a43197
+	return BadLength;
0a43197
+    
0a43197
+    SwapLongs((CARD32 *) (&stuff[1]), stuff->event_count);
0a43197
 
0a43197
     return (ProcXGrabDevice(client));
0a43197
 }
0a43197
--- xorg-server-1.1.1/Xi/chgfctl.c.da	2006-07-06 04:31:36.000000000 +1000
0a43197
+++ xorg-server-1.1.1/Xi/chgfctl.c	2007-12-14 11:50:50.000000000 +1000
0a43197
@@ -451,18 +451,13 @@
0a43197
 		     xStringFeedbackCtl * f)
0a43197
 {
0a43197
     register char n;
0a43197
-    register long *p;
0a43197
     int i, j;
0a43197
     KeySym *syms, *sup_syms;
0a43197
 
0a43197
     syms = (KeySym *) (f + 1);
0a43197
     if (client->swapped) {
0a43197
 	swaps(&f->length, n);	/* swapped num_keysyms in calling proc */
0a43197
-	p = (long *)(syms);
0a43197
-	for (i = 0; i < f->num_keysyms; i++) {
0a43197
-	    swapl(p, n);
0a43197
-	    p++;
0a43197
-	}
0a43197
+	SwapLongs((CARD32 *) syms, f->num_keysyms);
0a43197
     }
0a43197
 
0a43197
     if (f->num_keysyms > s->ctrl.max_symbols) {