diff options
author | Eamon Walsh <ewalsh@tycho.nsa.gov> | 2008-02-12 19:59:10 -0500 |
---|---|---|
committer | Eamon Walsh <ewalsh@moss-charon.epoch.ncsc.mil> | 2008-02-12 19:59:10 -0500 |
commit | 0d492b2166c4026b9078ffd86d89a31ebe590be4 (patch) | |
tree | 5588d9c8aa3152abff9b8d4a920dcf963be124ea | |
parent | 4be69e41c07b784f75918141eead70415c0ec4a4 (diff) |
XACE: Move the selection access hook to its own function.
-rw-r--r-- | Xext/xace.c | 18 | ||||
-rw-r--r-- | Xext/xace.h | 4 | ||||
-rw-r--r-- | dix/dispatch.c | 10 |
3 files changed, 15 insertions, 17 deletions
diff --git a/Xext/xace.c b/Xext/xace.c index b2c7e4ab4..e88debc5f 100644 --- a/Xext/xace.c +++ b/Xext/xace.c @@ -63,6 +63,13 @@ int XaceHookPropertyAccess(ClientPtr client, WindowPtr pWin, return rec.status; } +int XaceHookSelectionAccess(ClientPtr client, Atom name, Mask access_mode) +{ + XaceSelectionAccessRec rec = { client, name, access_mode, Success }; + CallCallbacks(&XaceHooks[XACE_SELECTION_ACCESS], &rec); + return rec.status; +} + void XaceHookAuditEnd(ClientPtr ptr, int result) { XaceAuditRec rec = { ptr, result }; @@ -169,17 +176,6 @@ int XaceHook(int hook, ...) prv = &rec.status; break; } - case XACE_SELECTION_ACCESS: { - XaceSelectionAccessRec rec = { - va_arg(ap, ClientPtr), - va_arg(ap, Atom), - va_arg(ap, Mask), - Success /* default allow */ - }; - calldata = &rec; - prv = &rec.status; - break; - } case XACE_SCREEN_ACCESS: case XACE_SCREENSAVER_ACCESS: { XaceScreenAccessRec rec = { diff --git a/Xext/xace.h b/Xext/xace.h index 6f1f267ad..2016ca322 100644 --- a/Xext/xace.h +++ b/Xext/xace.h @@ -69,6 +69,8 @@ extern int XaceHook( extern int XaceHookDispatch(ClientPtr ptr, int major); extern int XaceHookPropertyAccess(ClientPtr ptr, WindowPtr pWin, PropertyPtr pProp, Mask access_mode); +extern int XaceHookSelectionAccess(ClientPtr ptr, Atom name, + Mask access_mode); extern void XaceHookAuditEnd(ClientPtr ptr, int result); /* Register a callback for a given hook. @@ -106,12 +108,14 @@ extern void XaceCensorImage( #define XaceHook(args...) Success #define XaceHookDispatch(args...) Success #define XaceHookPropertyAccess(args...) Success +#define XaceHookSelectionAccess(args...) Success #define XaceHookAuditEnd(args...) { ; } #define XaceCensorImage(args...) { ; } #else #define XaceHook(...) Success #define XaceHookDispatch(...) Success #define XaceHookPropertyAccess(...) Success +#define XaceHookSelectionAccess(...) Success #define XaceHookAuditEnd(...) { ; } #define XaceCensorImage(...) { ; } #endif diff --git a/dix/dispatch.c b/dix/dispatch.c index 0bca4417e..3589fba1c 100644 --- a/dix/dispatch.c +++ b/dix/dispatch.c @@ -995,8 +995,8 @@ ProcSetSelectionOwner(ClientPtr client) { int i = 0; - rc = XaceHook(XACE_SELECTION_ACCESS, client, stuff->selection, - DixSetAttrAccess); + rc = XaceHookSelectionAccess(client, stuff->selection, + DixSetAttrAccess); if (rc != Success) return rc; @@ -1081,8 +1081,7 @@ ProcGetSelectionOwner(ClientPtr client) int rc, i; xGetSelectionOwnerReply reply; - rc = XaceHook(XACE_SELECTION_ACCESS, client, stuff->id, - DixGetAttrAccess); + rc = XaceHookSelectionAccess(client, stuff->id, DixGetAttrAccess); if (rc != Success) return rc; @@ -1127,8 +1126,7 @@ ProcConvertSelection(ClientPtr client) rc = dixLookupWindow(&pWin, stuff->requestor, client, DixSetAttrAccess); if (rc != Success) return rc; - rc = XaceHook(XACE_SELECTION_ACCESS, client, stuff->selection, - DixReadAccess); + rc = XaceHookSelectionAccess(client, stuff->selection, DixReadAccess); if (rc != Success) return rc; |