summaryrefslogtreecommitdiff
path: root/x11/modular-xorg-server/patches/patch-eh
diff options
context:
space:
mode:
Diffstat (limited to 'x11/modular-xorg-server/patches/patch-eh')
-rw-r--r--x11/modular-xorg-server/patches/patch-eh41
1 files changed, 41 insertions, 0 deletions
diff --git a/x11/modular-xorg-server/patches/patch-eh b/x11/modular-xorg-server/patches/patch-eh
new file mode 100644
index 00000000000..ee6b2fecdda
--- /dev/null
+++ b/x11/modular-xorg-server/patches/patch-eh
@@ -0,0 +1,41 @@
+$NetBSD: patch-eh,v 1.1 2008/02/25 15:39:16 joerg Exp $
+
+--- Xi/chgkmap.c.orig 2006-06-06 19:13:52.000000000 +0200
++++ Xi/chgkmap.c
+@@ -79,18 +79,14 @@ int
+ SProcXChangeDeviceKeyMapping(register ClientPtr client)
+ {
+ register char n;
+- register long *p;
+- register int i, count;
++ unsigned int count;
+
+ REQUEST(xChangeDeviceKeyMappingReq);
+ swaps(&stuff->length, n);
+ REQUEST_AT_LEAST_SIZE(xChangeDeviceKeyMappingReq);
+- p = (long *)&stuff[1];
+ count = stuff->keyCodes * stuff->keySymsPerKeyCode;
+- for (i = 0; i < count; i++) {
+- swapl(p, n);
+- p++;
+- }
++ REQUEST_FIXED_SIZE(xChangeDeviceKeyMappingReq, count * sizeof(CARD32));
++ SwapLongs((CARD32 *) (&stuff[1]), count);
+ return (ProcXChangeDeviceKeyMapping(client));
+ }
+
+@@ -106,10 +102,14 @@ ProcXChangeDeviceKeyMapping(register Cli
+ int ret;
+ unsigned len;
+ DeviceIntPtr dev;
++ unsigned int count;
+
+ REQUEST(xChangeDeviceKeyMappingReq);
+ REQUEST_AT_LEAST_SIZE(xChangeDeviceKeyMappingReq);
+
++ count = stuff->keyCodes * stuff->keySymsPerKeyCode;
++ REQUEST_FIXED_SIZE(xChangeDeviceKeyMappingReq, count * sizeof(CARD32));
++
+ dev = LookupDeviceIntRec(stuff->deviceid);
+ if (dev == NULL) {
+ SendErrorToClient(client, IReqCode, X_ChangeDeviceKeyMapping, 0,