From 6c2c6fb5a7b44f50811722eb8621afb272aff2e8 Mon Sep 17 00:00:00 2001 From: Keith Packard Date: Mon, 21 Sep 2015 07:16:14 +0100 Subject: [PATCH] Xext, os: Remove OS-internal usages within XACE and XSELinux These extensions were accessing internal OS functions and structures. Expose the necessary functionality to them and remove their use of osdep.h Reviewed-by: Alan Coopersmith Signed-off-by: Keith Packard --- Xext/xace.c | 13 ++----------- Xext/xselinux_hooks.c | 1 - include/os.h | 7 +++++++ os/access.c | 14 ++++++++++++++ 4 files changed, 23 insertions(+), 12 deletions(-) diff --git a/Xext/xace.c b/Xext/xace.c index b3c67f632..fcb38db8c 100644 --- a/Xext/xace.c +++ b/Xext/xace.c @@ -29,11 +29,6 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. #include "gcstruct.h" #include "xacestr.h" -#define XSERV_t -#define TRANS_SERVER -#include -#include "../os/osdep.h" - _X_EXPORT CallbackListPtr XaceHooks[XACE_NUM_HOOKS] = { 0 }; /* Special-cased hook functions. Called by Xserver. @@ -342,15 +337,11 @@ XaceCensorImage(ClientPtr client, int XaceGetConnectionNumber(ClientPtr client) { - XtransConnInfo ci = ((OsCommPtr) client->osPrivate)->trans_conn; - - return _XSERVTransGetConnectionNumber(ci); + return GetClientFd(client); } int XaceIsLocal(ClientPtr client) { - XtransConnInfo ci = ((OsCommPtr) client->osPrivate)->trans_conn; - - return _XSERVTransIsLocal(ci); + return ClientIsLocal(client); } diff --git a/Xext/xselinux_hooks.c b/Xext/xselinux_hooks.c index e69bfe7ae..d9f2f681b 100644 --- a/Xext/xselinux_hooks.c +++ b/Xext/xselinux_hooks.c @@ -41,7 +41,6 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. #include "extnsionst.h" #include "xacestr.h" #include "client.h" -#include "../os/osdep.h" #define _XSELINUX_NEED_FLASK_MAP #include "xselinuxint.h" diff --git a/include/os.h b/include/os.h index b2b96c863..9937f2ea5 100644 --- a/include/os.h +++ b/include/os.h @@ -415,12 +415,19 @@ typedef struct { extern _X_EXPORT int GetLocalClientCreds(ClientPtr, LocalClientCredRec **); + extern _X_EXPORT void FreeLocalClientCreds(LocalClientCredRec *); extern _X_EXPORT int ChangeAccessControl(ClientPtr /*client */ , int /*fEnabled */ ); +extern _X_EXPORT int +GetClientFd(ClientPtr); + +extern _X_EXPORT Bool +ClientIsLocal(ClientPtr client); + extern _X_EXPORT int GetAccessControl(void); diff --git a/os/access.c b/os/access.c index 54f069024..2499a9f12 100644 --- a/os/access.c +++ b/os/access.c @@ -1574,6 +1574,20 @@ GetAccessControl(void) return AccessEnabled; } +int +GetClientFd(ClientPtr client) +{ + return ((OsCommPtr) client->osPrivate)->fd; +} + +Bool +ClientIsLocal(ClientPtr client) +{ + XtransConnInfo ci = ((OsCommPtr) client->osPrivate)->trans_conn; + + return _XSERVTransIsLocal(ci); +} + /***************************************************************************** * FamilyServerInterpreted host entry implementation *