diff options
Diffstat (limited to 'x11/modular-xorg-server/patches/patch-eh')
-rw-r--r-- | x11/modular-xorg-server/patches/patch-eh | 41 |
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, |