From 9524ffee89edfb11baf66b5519de01ed3e7f5bd1 Mon Sep 17 00:00:00 2001 From: "Enrico Weigelt, metux IT consult" Date: Thu, 16 May 2024 20:15:56 +0200 Subject: [PATCH] xace: typesafe hook function for XACE_DEVICE_ACCESS The generic XaceHook() call isn't typesafe (und unnecessarily slow). Better add an explicit function, just like we already have for others. Signed-off-by: Enrico Weigelt, metux IT consult Part-of: --- Xext/xace.c | 16 +++++++--------- Xext/xace.h | 2 ++ Xi/exevents.c | 8 ++++---- Xi/grabdevb.c | 2 +- Xi/grabdevk.c | 2 +- Xi/listdev.c | 2 +- Xi/xiquerydevice.c | 4 ++-- dix/devices.c | 26 +++++++++++++------------- dix/events.c | 18 +++++++++--------- dix/grabs.c | 2 +- dix/inpututils.c | 6 +++--- xkb/xkb.c | 36 +++++++++++++----------------------- 12 files changed, 57 insertions(+), 67 deletions(-) diff --git a/Xext/xace.c b/Xext/xace.c index 726d0190a..136a0055e 100644 --- a/Xext/xace.c +++ b/Xext/xace.c @@ -71,13 +71,19 @@ int XaceHookResourceAccess(ClientPtr client, XID id, RESTYPE rtype, void *res, return rec.status; } +int XaceHookDeviceAccess(ClientPtr client, DeviceIntPtr dev, Mask access_mode) +{ + XaceDeviceAccessRec rec = { client, dev, access_mode, Success }; + CallCallbacks(&XaceHooks[XACE_DEVICE_ACCESS], &rec); + return rec.status; +} + /* Entry point for hook functions. Called by Xserver. */ int XaceHook(int hook, ...) { union { - XaceDeviceAccessRec dev; XaceSendAccessRec send; XaceReceiveAccessRec recv; XaceClientAccessRec client; @@ -101,14 +107,6 @@ XaceHook(int hook, ...) * sets calldata directly to a single argument (with no return result) */ switch (hook) { - case XACE_DEVICE_ACCESS: - u.dev.client = va_arg(ap, ClientPtr); - u.dev.dev = va_arg(ap, DeviceIntPtr); - u.dev.access_mode = va_arg(ap, Mask); - - u.dev.status = Success; /* default allow */ - prv = &u.dev.status; - break; case XACE_SEND_ACCESS: u.send.client = va_arg(ap, ClientPtr); u.send.dev = va_arg(ap, DeviceIntPtr); diff --git a/Xext/xace.h b/Xext/xace.h index ff3ce8404..edba2a3d2 100644 --- a/Xext/xace.h +++ b/Xext/xace.h @@ -82,6 +82,8 @@ int XaceHookSelectionAccess(ClientPtr ptr, Selection ** ppSel, Mask access_mode) _X_EXPORT int XaceHookResourceAccess(ClientPtr client, XID id, RESTYPE rtype, void *res, RESTYPE ptype, void *parent, Mask access_mode); +int XaceHookDeviceAccess(ClientPtr client, DeviceIntPtr dev, Mask access_mode); + /* Register a callback for a given hook. */ #define XaceRegisterCallback(hook,callback,data) \ diff --git a/Xi/exevents.c b/Xi/exevents.c index 61de1dfda..38150bac7 100644 --- a/Xi/exevents.c +++ b/Xi/exevents.c @@ -2514,7 +2514,7 @@ GrabButton(ClientPtr client, DeviceIntPtr dev, DeviceIntPtr modifier_device, if (param->this_device_mode == GrabModeSync || param->other_devices_mode == GrabModeSync) access_mode |= DixFreezeAccess; - rc = XaceHook(XACE_DEVICE_ACCESS, client, dev, access_mode); + rc = XaceHookDeviceAccess(client, dev, access_mode); if (rc != Success) return rc; rc = dixLookupWindow(&pWin, param->grabWindow, client, DixSetAttrAccess); @@ -2570,7 +2570,7 @@ GrabKey(ClientPtr client, DeviceIntPtr dev, DeviceIntPtr modifier_device, if (param->this_device_mode == GrabModeSync || param->other_devices_mode == GrabModeSync) access_mode |= DixFreezeAccess; - rc = XaceHook(XACE_DEVICE_ACCESS, client, dev, access_mode); + rc = XaceHookDeviceAccess(client, dev, access_mode); if (rc != Success) return rc; @@ -2613,7 +2613,7 @@ GrabWindow(ClientPtr client, DeviceIntPtr dev, int type, if (param->this_device_mode == GrabModeSync || param->other_devices_mode == GrabModeSync) access_mode |= DixFreezeAccess; - rc = XaceHook(XACE_DEVICE_ACCESS, client, dev, access_mode); + rc = XaceHookDeviceAccess(client, dev, access_mode); if (rc != Success) return rc; @@ -2644,7 +2644,7 @@ GrabTouchOrGesture(ClientPtr client, DeviceIntPtr dev, DeviceIntPtr mod_dev, rc = dixLookupWindow(&pWin, param->grabWindow, client, DixSetAttrAccess); if (rc != Success) return rc; - rc = XaceHook(XACE_DEVICE_ACCESS, client, dev, DixGrabAccess); + rc = XaceHookDeviceAccess(client, dev, DixGrabAccess); if (rc != Success) return rc; diff --git a/Xi/grabdevb.c b/Xi/grabdevb.c index 6b54dd425..344dc54a8 100644 --- a/Xi/grabdevb.c +++ b/Xi/grabdevb.c @@ -126,7 +126,7 @@ ProcXGrabDeviceButton(ClientPtr client) } else { mdev = PickKeyboard(client); - ret = XaceHook(XACE_DEVICE_ACCESS, client, mdev, DixUseAccess); + ret = XaceHookDeviceAccess(client, mdev, DixUseAccess); if (ret != Success) return ret; } diff --git a/Xi/grabdevk.c b/Xi/grabdevk.c index f63de62d3..a230f7c3d 100644 --- a/Xi/grabdevk.c +++ b/Xi/grabdevk.c @@ -124,7 +124,7 @@ ProcXGrabDeviceKey(ClientPtr client) } else { mdev = PickKeyboard(client); - ret = XaceHook(XACE_DEVICE_ACCESS, client, mdev, DixUseAccess); + ret = XaceHookDeviceAccess(client, mdev, DixUseAccess); if (ret != Success) return ret; } diff --git a/Xi/listdev.c b/Xi/listdev.c index c15e61b37..5a8cd65c8 100644 --- a/Xi/listdev.c +++ b/Xi/listdev.c @@ -309,7 +309,7 @@ ShouldSkipDevice(ClientPtr client, DeviceIntPtr d) { /* don't send master devices other than VCP/VCK */ if (!IsMaster(d) || d == inputInfo.pointer ||d == inputInfo.keyboard) { - int rc = XaceHook(XACE_DEVICE_ACCESS, client, d, DixGetAttrAccess); + int rc = XaceHookDeviceAccess(client, d, DixGetAttrAccess); if (rc == Success) return FALSE; diff --git a/Xi/xiquerydevice.c b/Xi/xiquerydevice.c index c9a9864bc..c33a251a2 100644 --- a/Xi/xiquerydevice.c +++ b/Xi/xiquerydevice.c @@ -178,7 +178,7 @@ ShouldSkipDevice(ClientPtr client, int deviceid, DeviceIntPtr dev) { /* if all devices are not being queried, only master devices are */ if (deviceid == XIAllDevices || IsMaster(dev)) { - int rc = XaceHook(XACE_DEVICE_ACCESS, client, dev, DixGetAttrAccess); + int rc = XaceHookDeviceAccess(client, dev, DixGetAttrAccess); if (rc == Success) return FALSE; @@ -575,7 +575,7 @@ ListDeviceClasses(ClientPtr client, DeviceIntPtr dev, int rc; /* Check if the current device state should be suppressed */ - rc = XaceHook(XACE_DEVICE_ACCESS, client, dev, DixReadAccess); + rc = XaceHookDeviceAccess(client, dev, DixReadAccess); if (dev->button) { (*nclasses)++; diff --git a/dix/devices.c b/dix/devices.c index 73402e091..9ffe52c45 100644 --- a/dix/devices.c +++ b/dix/devices.c @@ -296,7 +296,7 @@ AddInputDevice(ClientPtr client, DeviceProc deviceProc, Bool autoStart) /* security creation/labeling check */ - if (XaceHook(XACE_DEVICE_ACCESS, client, dev, DixCreateAccess)) { + if (XaceHookDeviceAccess(client, dev, DixCreateAccess)) { dixFreePrivates(dev->devPrivates, PRIVATE_DEVICE); free(dev); return NULL; @@ -1264,7 +1264,7 @@ dixLookupDevice(DeviceIntPtr *pDev, int id, ClientPtr client, Mask access_mode) return BadDevice; found: - rc = XaceHook(XACE_DEVICE_ACCESS, client, dev, access_mode); + rc = XaceHookDeviceAccess(client, dev, access_mode); if (rc == Success) *pDev = dev; return rc; @@ -1844,7 +1844,7 @@ ProcChangeKeyboardMapping(ClientPtr client) keysyms.mapWidth = stuff->keySymsPerKeyCode; keysyms.map = (KeySym *) &stuff[1]; - rc = XaceHook(XACE_DEVICE_ACCESS, client, pDev, DixManageAccess); + rc = XaceHookDeviceAccess(client, pDev, DixManageAccess); if (rc != Success) return rc; @@ -1857,7 +1857,7 @@ ProcChangeKeyboardMapping(ClientPtr client) if (!tmp->key) continue; - rc = XaceHook(XACE_DEVICE_ACCESS, client, pDev, DixManageAccess); + rc = XaceHookDeviceAccess(client, pDev, DixManageAccess); if (rc != Success) continue; @@ -1938,7 +1938,7 @@ ProcGetKeyboardMapping(ClientPtr client) REQUEST(xGetKeyboardMappingReq); REQUEST_SIZE_MATCH(xGetKeyboardMappingReq); - rc = XaceHook(XACE_DEVICE_ACCESS, client, kbd, DixGetAttrAccess); + rc = XaceHookDeviceAccess(client, kbd, DixGetAttrAccess); if (rc != Success) return rc; @@ -1991,7 +1991,7 @@ ProcGetPointerMapping(ClientPtr client) REQUEST_SIZE_MATCH(xReq); - rc = XaceHook(XACE_DEVICE_ACCESS, client, ptr, DixGetAttrAccess); + rc = XaceHookDeviceAccess(client, ptr, DixGetAttrAccess); if (rc != Success) return rc; @@ -2217,7 +2217,7 @@ ProcChangeKeyboardControl(ClientPtr client) if ((pDev == keyboard || (!IsMaster(pDev) && GetMaster(pDev, MASTER_KEYBOARD) == keyboard)) && pDev->kbdfeed && pDev->kbdfeed->CtrlProc) { - ret = XaceHook(XACE_DEVICE_ACCESS, client, pDev, DixManageAccess); + ret = XaceHookDeviceAccess(client, pDev, DixManageAccess); if (ret != Success) return ret; } @@ -2246,7 +2246,7 @@ ProcGetKeyboardControl(ClientPtr client) REQUEST_SIZE_MATCH(xReq); - rc = XaceHook(XACE_DEVICE_ACCESS, client, kbd, DixGetAttrAccess); + rc = XaceHookDeviceAccess(client, kbd, DixGetAttrAccess); if (rc != Success) return rc; @@ -2294,7 +2294,7 @@ ProcBell(ClientPtr client) (!IsMaster(dev) && GetMaster(dev, MASTER_KEYBOARD) == keybd)) && ((dev->kbdfeed && dev->kbdfeed->BellProc) || dev->xkb_interest)) { - rc = XaceHook(XACE_DEVICE_ACCESS, client, dev, DixBellAccess); + rc = XaceHookDeviceAccess(client, dev, DixBellAccess); if (rc != Success) return rc; XkbHandleBell(FALSE, FALSE, dev, newpercent, @@ -2367,7 +2367,7 @@ ProcChangePointerControl(ClientPtr client) if ((dev == mouse || (!IsMaster(dev) && GetMaster(dev, MASTER_POINTER) == mouse)) && dev->ptrfeed) { - rc = XaceHook(XACE_DEVICE_ACCESS, client, dev, DixManageAccess); + rc = XaceHookDeviceAccess(client, dev, DixManageAccess); if (rc != Success) return rc; } @@ -2399,7 +2399,7 @@ ProcGetPointerControl(ClientPtr client) REQUEST_SIZE_MATCH(xReq); - rc = XaceHook(XACE_DEVICE_ACCESS, client, ptr, DixGetAttrAccess); + rc = XaceHookDeviceAccess(client, ptr, DixGetAttrAccess); if (rc != Success) return rc; @@ -2448,7 +2448,7 @@ ProcGetMotionEvents(ClientPtr client) rc = dixLookupWindow(&pWin, stuff->window, client, DixGetAttrAccess); if (rc != Success) return rc; - rc = XaceHook(XACE_DEVICE_ACCESS, client, mouse, DixReadAccess); + rc = XaceHookDeviceAccess(client, mouse, DixReadAccess); if (rc != Success) return rc; @@ -2512,7 +2512,7 @@ ProcQueryKeymap(ClientPtr client) .length = 2 }; - rc = XaceHook(XACE_DEVICE_ACCESS, client, keybd, DixReadAccess); + rc = XaceHookDeviceAccess(client, keybd, DixReadAccess); /* If rc is Success, we're allowed to copy out the keymap. * If it's BadAccess, we leave it empty & lie to the client. */ diff --git a/dix/events.c b/dix/events.c index dfc53958c..127370b5d 100644 --- a/dix/events.c +++ b/dix/events.c @@ -3626,7 +3626,7 @@ ProcWarpPointer(ClientPtr client) for (tmp = inputInfo.devices; tmp; tmp = tmp->next) { if (GetMaster(tmp, MASTER_ATTACHED) == dev) { - rc = XaceHook(XACE_DEVICE_ACCESS, client, dev, DixWriteAccess); + rc = XaceHookDeviceAccess(client, dev, DixWriteAccess); if (rc != Success) return rc; } @@ -4705,7 +4705,7 @@ CoreEnterLeaveEvent(DeviceIntPtr mouse, ClientPtr client = grab ? rClient(grab) : wClient(pWin); int rc; - rc = XaceHook(XACE_DEVICE_ACCESS, client, keybd, DixReadAccess); + rc = XaceHookDeviceAccess(client, keybd, DixReadAccess); if (rc == Success) memcpy((char *) &ke.map[0], (char *) &keybd->key->down[1], 31); @@ -4816,7 +4816,7 @@ CoreFocusEvent(DeviceIntPtr dev, int type, int mode, int detail, WindowPtr pWin) ClientPtr client = wClient(pWin); int rc; - rc = XaceHook(XACE_DEVICE_ACCESS, client, dev, DixReadAccess); + rc = XaceHookDeviceAccess(client, dev, DixReadAccess); if (rc == Success) memcpy((char *) &ke.map[0], (char *) &dev->key->down[1], 31); @@ -4879,7 +4879,7 @@ SetInputFocus(ClientPtr client, if (!focusWin->realized) return BadMatch; } - rc = XaceHook(XACE_DEVICE_ACCESS, client, dev, DixSetFocusAccess); + rc = XaceHookDeviceAccess(client, dev, DixSetFocusAccess); if (rc != Success) return Success; @@ -4957,7 +4957,7 @@ ProcGetInputFocus(ClientPtr client) /* REQUEST(xReq); */ REQUEST_SIZE_MATCH(xReq); - rc = XaceHook(XACE_DEVICE_ACCESS, client, kbd, DixGetFocusAccess); + rc = XaceHookDeviceAccess(client, kbd, DixGetFocusAccess); if (rc != Success) return rc; @@ -5191,7 +5191,7 @@ GrabDevice(ClientPtr client, DeviceIntPtr dev, if (keyboard_mode == GrabModeSync || pointer_mode == GrabModeSync) access_mode |= DixFreezeAccess; - rc = XaceHook(XACE_DEVICE_ACCESS, client, dev, access_mode); + rc = XaceHookDeviceAccess(client, dev, access_mode); if (rc != Success) return rc; @@ -5330,7 +5330,7 @@ ProcQueryPointer(ClientPtr client) rc = dixLookupWindow(&pWin, stuff->id, client, DixGetAttrAccess); if (rc != Success) return rc; - rc = XaceHook(XACE_DEVICE_ACCESS, client, mouse, DixReadAccess); + rc = XaceHookDeviceAccess(client, mouse, DixReadAccess); if (rc != Success && rc != BadAccess) return rc; @@ -5730,7 +5730,7 @@ ProcGrabButton(ClientPtr client) if (stuff->pointerMode == GrabModeSync || stuff->keyboardMode == GrabModeSync) access_mode |= DixFreezeAccess; - rc = XaceHook(XACE_DEVICE_ACCESS, client, ptr, access_mode); + rc = XaceHookDeviceAccess(client, ptr, access_mode); if (rc != Success) return rc; @@ -6136,7 +6136,7 @@ WriteEventsToClient(ClientPtr pClient, int count, xEvent *events) int SetClientPointer(ClientPtr client, DeviceIntPtr device) { - int rc = XaceHook(XACE_DEVICE_ACCESS, client, device, DixUseAccess); + int rc = XaceHookDeviceAccess(client, device, DixUseAccess); if (rc != Success) return rc; diff --git a/dix/grabs.c b/dix/grabs.c index d6017bef2..af2f3138b 100644 --- a/dix/grabs.c +++ b/dix/grabs.c @@ -548,7 +548,7 @@ AddPassiveGrabToList(ClientPtr client, GrabPtr pGrab) if (pGrab->keyboardMode == GrabModeSync || pGrab->pointerMode == GrabModeSync) access_mode |= DixFreezeAccess; - rc = XaceHook(XACE_DEVICE_ACCESS, client, pGrab->device, access_mode); + rc = XaceHookDeviceAccess(client, pGrab->device, access_mode); if (rc != Success) return rc; diff --git a/dix/inpututils.c b/dix/inpututils.c index 240d0ff8a..1c7e086a9 100644 --- a/dix/inpututils.c +++ b/dix/inpututils.c @@ -54,7 +54,7 @@ check_butmap_change(DeviceIntPtr dev, CARD8 *map, int len, CARD32 *errval_out, return BadDevice; } - ret = XaceHook(XACE_DEVICE_ACCESS, client, dev, DixManageAccess); + ret = XaceHookDeviceAccess(client, dev, DixManageAccess); if (ret != Success) { client->errorValue = dev->id; return ret; @@ -135,7 +135,7 @@ check_modmap_change(ClientPtr client, DeviceIntPtr dev, KeyCode *modmap) int ret, i; XkbDescPtr xkb; - ret = XaceHook(XACE_DEVICE_ACCESS, client, dev, DixManageAccess); + ret = XaceHookDeviceAccess(client, dev, DixManageAccess); if (ret != Success) return ret; @@ -293,7 +293,7 @@ generate_modkeymap(ClientPtr client, DeviceIntPtr dev, KeyCode *modkeymap = NULL; int i, j, ret; - ret = XaceHook(XACE_DEVICE_ACCESS, client, dev, DixGetAttrAccess); + ret = XaceHookDeviceAccess(client, dev, DixGetAttrAccess); if (ret != Success) return ret; diff --git a/xkb/xkb.c b/xkb/xkb.c index 9fd89f730..f6520cb8f 100644 --- a/xkb/xkb.c +++ b/xkb/xkb.c @@ -562,7 +562,7 @@ ProcXkbBell(ClientPtr client) for (other = inputInfo.devices; other; other = other->next) { if ((other != dev) && other->key && !IsMaster(other) && GetMaster(other, MASTER_KEYBOARD) == dev) { - rc = XaceHook(XACE_DEVICE_ACCESS, client, other, DixBellAccess); + rc = XaceHookDeviceAccess(client, other, DixBellAccess); if (rc == Success) _XkbBell(client, other, pWin, stuff->bellClass, stuff->bellID, stuff->pitch, stuff->duration, @@ -2749,8 +2749,7 @@ ProcXkbSetMap(ClientPtr client) for (other = inputInfo.devices; other; other = other->next) { if ((other != dev) && other->key && !IsMaster(other) && GetMaster(other, MASTER_KEYBOARD) == dev) { - rc = XaceHook(XACE_DEVICE_ACCESS, client, other, - DixManageAccess); + rc = XaceHookDeviceAccess(client, other, DixManageAccess); if (rc == Success) { rc = _XkbSetMapChecks(client, other, stuff, tmp, FALSE); if (rc != Success) @@ -2783,8 +2782,7 @@ ProcXkbSetMap(ClientPtr client) for (other = inputInfo.devices; other; other = other->next) { if ((other != dev) && other->key && !IsMaster(other) && GetMaster(other, MASTER_KEYBOARD) == dev) { - rc = XaceHook(XACE_DEVICE_ACCESS, client, other, - DixManageAccess); + rc = XaceHookDeviceAccess(client, other, DixManageAccess); if (rc == Success) _XkbSetMap(client, other, stuff, tmp); /* ignore rc. if the SetMap failed although the check above @@ -3123,8 +3121,7 @@ ProcXkbSetCompatMap(ClientPtr client) for (other = inputInfo.devices; other; other = other->next) { if ((other != dev) && other->key && !IsMaster(other) && GetMaster(other, MASTER_KEYBOARD) == dev) { - rc = XaceHook(XACE_DEVICE_ACCESS, client, other, - DixManageAccess); + rc = XaceHookDeviceAccess(client, other, DixManageAccess); if (rc == Success) { /* dry-run */ rc = _XkbSetCompatMap(client, other, stuff, data, TRUE); @@ -3145,8 +3142,7 @@ ProcXkbSetCompatMap(ClientPtr client) for (other = inputInfo.devices; other; other = other->next) { if ((other != dev) && other->key && !IsMaster(other) && GetMaster(other, MASTER_KEYBOARD) == dev) { - rc = XaceHook(XACE_DEVICE_ACCESS, client, other, - DixManageAccess); + rc = XaceHookDeviceAccess(client, other, DixManageAccess); if (rc == Success) { rc = _XkbSetCompatMap(client, other, stuff, data, FALSE); if (rc != Success) @@ -3407,8 +3403,7 @@ ProcXkbSetIndicatorMap(ClientPtr client) for (other = inputInfo.devices; other; other = other->next) { if ((other != dev) && other->key && !IsMaster(other) && GetMaster(other, MASTER_KEYBOARD) == dev) { - rc = XaceHook(XACE_DEVICE_ACCESS, client, other, - DixSetAttrAccess); + rc = XaceHookDeviceAccess(client, other, DixSetAttrAccess); if (rc == Success) _XkbSetIndicatorMap(client, other, stuff->which, from); } @@ -3676,7 +3671,7 @@ ProcXkbSetNamedIndicator(ClientPtr client) if ((other != dev) && !IsMaster(other) && GetMaster(other, MASTER_KEYBOARD) == dev && (other->kbdfeed || other->leds) && - (XaceHook(XACE_DEVICE_ACCESS, client, other, DixSetAttrAccess) + (XaceHookDeviceAccess(client, other, DixSetAttrAccess) == Success)) { rc = _XkbCreateIndicatorMap(other, stuff->indicator, stuff->ledClass, stuff->ledID, &map, @@ -3700,7 +3695,7 @@ ProcXkbSetNamedIndicator(ClientPtr client) if ((other != dev) && !IsMaster(other) && GetMaster(other, MASTER_KEYBOARD) == dev && (other->kbdfeed || other->leds) && - (XaceHook(XACE_DEVICE_ACCESS, client, other, DixSetAttrAccess) + (XaceHookDeviceAccess(client, other, DixSetAttrAccess) == Success)) { _XkbSetNamedIndicator(client, other, stuff); } @@ -4539,8 +4534,7 @@ ProcXkbSetNames(ClientPtr client) if ((other != dev) && other->key && !IsMaster(other) && GetMaster(other, MASTER_KEYBOARD) == dev) { - rc = XaceHook(XACE_DEVICE_ACCESS, client, other, - DixManageAccess); + rc = XaceHookDeviceAccess(client, other, DixManageAccess); if (rc == Success) { rc = _XkbSetNamesCheck(client, other, stuff, tmp); if (rc != Success) @@ -4563,8 +4557,7 @@ ProcXkbSetNames(ClientPtr client) if ((other != dev) && other->key && !IsMaster(other) && GetMaster(other, MASTER_KEYBOARD) == dev) { - rc = XaceHook(XACE_DEVICE_ACCESS, client, other, - DixManageAccess); + rc = XaceHookDeviceAccess(client, other, DixManageAccess); if (rc == Success) _XkbSetNames(client, other, stuff); } @@ -5692,8 +5685,7 @@ ProcXkbSetGeometry(ClientPtr client) for (other = inputInfo.devices; other; other = other->next) { if ((other != dev) && other->key && !IsMaster(other) && GetMaster(other, MASTER_KEYBOARD) == dev) { - rc = XaceHook(XACE_DEVICE_ACCESS, client, other, - DixManageAccess); + rc = XaceHookDeviceAccess(client, other, DixManageAccess); if (rc == Success) _XkbSetGeometry(client, other, stuff); } @@ -6918,8 +6910,7 @@ ProcXkbSetDeviceInfo(ClientPtr client) GetMaster(other, MASTER_KEYBOARD) == dev) && ((stuff->deviceSpec == XkbUseCoreKbd && other->key) || (stuff->deviceSpec == XkbUseCorePtr && other->button))) { - rc = XaceHook(XACE_DEVICE_ACCESS, client, other, - DixManageAccess); + rc = XaceHookDeviceAccess(client, other, DixManageAccess); if (rc == Success) { rc = _XkbSetDeviceInfoCheck(client, other, stuff); if (rc != Success) @@ -6943,8 +6934,7 @@ ProcXkbSetDeviceInfo(ClientPtr client) GetMaster(other, MASTER_KEYBOARD) == dev) && ((stuff->deviceSpec == XkbUseCoreKbd && other->key) || (stuff->deviceSpec == XkbUseCorePtr && other->button))) { - rc = XaceHook(XACE_DEVICE_ACCESS, client, other, - DixManageAccess); + rc = XaceHookDeviceAccess(client, other, DixManageAccess); if (rc == Success) { rc = _XkbSetDeviceInfo(client, other, stuff); if (rc != Success)