From owner-trustedbsd-cvs@FreeBSD.ORG Thu Sep 7 13:58:44 2006 Return-Path: X-Original-To: trustedbsd-cvs@freebsd.org Delivered-To: trustedbsd-cvs@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id D9B1516A4E2 for ; Thu, 7 Sep 2006 13:58:44 +0000 (UTC) (envelope-from owner-perforce@freebsd.org) Received: from cyrus.watson.org (cyrus.watson.org [209.31.154.42]) by mx1.FreeBSD.org (Postfix) with ESMTP id 0D9A443D82 for ; Thu, 7 Sep 2006 13:58:36 +0000 (GMT) (envelope-from owner-perforce@freebsd.org) Received: from mx2.freebsd.org (mx2.freebsd.org [216.136.204.119]) by cyrus.watson.org (Postfix) with ESMTP id E153546DA2 for ; Thu, 7 Sep 2006 09:58:34 -0400 (EDT) Received: from hub.freebsd.org (hub.freebsd.org [216.136.204.18]) by mx2.freebsd.org (Postfix) with ESMTP id BE09B56827; Thu, 7 Sep 2006 13:39:42 +0000 (GMT) (envelope-from owner-perforce@freebsd.org) Received: by hub.freebsd.org (Postfix, from userid 32767) id B7EF716A4DE; Thu, 7 Sep 2006 13:39:42 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 7B23216A4DA for ; Thu, 7 Sep 2006 13:39:42 +0000 (UTC) (envelope-from millert@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 489E143D80 for ; Thu, 7 Sep 2006 13:39:21 +0000 (GMT) (envelope-from millert@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.6/8.13.6) with ESMTP id k87DdLPt013626 for ; Thu, 7 Sep 2006 13:39:21 GMT (envelope-from millert@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.6/8.13.4/Submit) id k87DdKbs013614 for perforce@freebsd.org; Thu, 7 Sep 2006 13:39:20 GMT (envelope-from millert@freebsd.org) Date: Thu, 7 Sep 2006 13:39:20 GMT Message-Id: <200609071339.k87DdKbs013614@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to millert@freebsd.org using -f From: Todd Miller To: Perforce Change Reviews Cc: Subject: PERFORCE change 105785 for review X-BeenThere: trustedbsd-cvs@FreeBSD.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: TrustedBSD CVS and Perforce commit message list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 07 Sep 2006 13:58:44 -0000 http://perforce.freebsd.org/chv.cgi?CH=105785 Change 105785 by millert@millert_g5tower on 2006/09/07 13:38:33 Update to libselinux_1_30_27 from sourceforge svn Affected files ... .. //depot/projects/trustedbsd/sedarwin8/policies/sedarwin/libselinux/ChangeLog#3 edit .. //depot/projects/trustedbsd/sedarwin8/policies/sedarwin/libselinux/VERSION#3 edit .. //depot/projects/trustedbsd/sedarwin8/policies/sedarwin/libselinux/include/selinux/selinux.h#3 edit .. //depot/projects/trustedbsd/sedarwin8/policies/sedarwin/libselinux/src/Makefile#5 edit .. //depot/projects/trustedbsd/sedarwin8/policies/sedarwin/libselinux/src/avc.c#4 edit .. //depot/projects/trustedbsd/sedarwin8/policies/sedarwin/libselinux/src/fgetfilecon.c#3 edit .. //depot/projects/trustedbsd/sedarwin8/policies/sedarwin/libselinux/src/file_path_suffixes.h#3 edit .. //depot/projects/trustedbsd/sedarwin8/policies/sedarwin/libselinux/src/getfilecon.c#3 edit .. //depot/projects/trustedbsd/sedarwin8/policies/sedarwin/libselinux/src/getfscreatecon.c#3 delete .. //depot/projects/trustedbsd/sedarwin8/policies/sedarwin/libselinux/src/getkeycreatecon.c#2 delete .. //depot/projects/trustedbsd/sedarwin8/policies/sedarwin/libselinux/src/getprocattrcon.c#2 delete .. //depot/projects/trustedbsd/sedarwin8/policies/sedarwin/libselinux/src/lgetfilecon.c#3 edit .. //depot/projects/trustedbsd/sedarwin8/policies/sedarwin/libselinux/src/load_policy.c#3 edit .. //depot/projects/trustedbsd/sedarwin8/policies/sedarwin/libselinux/src/procattr.c#1 add .. //depot/projects/trustedbsd/sedarwin8/policies/sedarwin/libselinux/src/sedarwin_config.c#3 edit .. //depot/projects/trustedbsd/sedarwin8/policies/sedarwin/libselinux/src/selinux.py#3 edit .. //depot/projects/trustedbsd/sedarwin8/policies/sedarwin/libselinux/src/selinux_config.c#3 edit .. //depot/projects/trustedbsd/sedarwin8/policies/sedarwin/libselinux/src/selinux_internal.h#3 edit .. //depot/projects/trustedbsd/sedarwin8/policies/sedarwin/libselinux/src/selinuxswig.i#3 edit .. //depot/projects/trustedbsd/sedarwin8/policies/sedarwin/libselinux/src/selinuxswig_wrap.c#3 edit .. //depot/projects/trustedbsd/sedarwin8/policies/sedarwin/libselinux/src/setexeccon.c#3 delete .. //depot/projects/trustedbsd/sedarwin8/policies/sedarwin/libselinux/src/setfscreatecon.c#3 delete .. //depot/projects/trustedbsd/sedarwin8/policies/sedarwin/libselinux/src/setkeycreatecon.c#2 delete .. //depot/projects/trustedbsd/sedarwin8/policies/sedarwin/libselinux/src/setprocattrcon.c#2 delete Differences ... ==== //depot/projects/trustedbsd/sedarwin8/policies/sedarwin/libselinux/ChangeLog#3 (text+ko) ==== @@ -1,3 +1,21 @@ +1.30.27 2006-08-24 + * Merged patch to not log avc stats upon a reset from Steve Grubb. + * Applied patch to revert compat_net setting upon policy load. + +1.30.26 2006-08-11 + * Merged file context homedir and local path functions from + Chris PeBenito. + +1.30.25 2006-08-11 + * Rework functions that access /proc/pid/attr to access the + per-thread nodes, and unify the code to simplify maintenance. + +1.30.24 2006-08-10 + * Merged return value fix for *getfilecon() from Dan Walsh. + +1.30.23 2006-08-10 + * Merged sockcreate interfaces from Eric Paris. + 1.30.22 2006-08-03 * Merged no-tls-direct-seg-refs patch from Jeremy Katz. ==== //depot/projects/trustedbsd/sedarwin8/policies/sedarwin/libselinux/VERSION#3 (text+ko) ==== @@ -1,1 +1,1 @@ -1.30.22 +1.30.27 ==== //depot/projects/trustedbsd/sedarwin8/policies/sedarwin/libselinux/include/selinux/selinux.h#3 (text+ko) ==== @@ -87,6 +87,17 @@ extern int setkeycreatecon(security_context_t context); extern int setkeycreatecon_raw(security_context_t context); +/* Get sockcreate context, and set *con to refer to it. + Sets *con to NULL if no socket create context has been set, i.e. using default. + If non-NULL, caller must free via freecon. */ + extern int getsockcreatecon(security_context_t * con); + extern int getsockcreatecon_raw(security_context_t * con); + +/* Set the sockcreate security context for subsequent socket creations. + Call with NULL if you want to reset to the default. */ + extern int setsockcreatecon(security_context_t context); + extern int setsockcreatecon_raw(security_context_t context); + /* Wrappers for the xattr API. */ /* Get file context, and set *con to refer to it. @@ -409,6 +420,8 @@ extern const char *selinux_default_context_path(void); extern const char *selinux_user_contexts_path(void); extern const char *selinux_file_context_path(void); + extern const char *selinux_file_context_homedir_path(void); + extern const char *selinux_file_context_local_path(void); extern const char *selinux_homedir_context_path(void); extern const char *selinux_media_context_path(void); extern const char *selinux_contexts_path(void); ==== //depot/projects/trustedbsd/sedarwin8/policies/sedarwin/libselinux/src/Makefile#5 (text+ko) ==== @@ -20,8 +20,7 @@ #OBJS += getfscreatecon.o setfscreatecon.o setexeccon.o # The following are Linux-specific -#OBJS += getkeycreatecon.o getprocattrcon.o rpm.o \ -# setkeycreatecon.o setprocattrcon.o +#OBJS += procattr.c rpm.o AR = ar cq RANLIB = ranlib ==== //depot/projects/trustedbsd/sedarwin8/policies/sedarwin/libselinux/src/avc.c#4 (text+ko) ==== @@ -1199,8 +1199,6 @@ { int rc; - avc_av_stats(); - rc = avc_reset(); avc_get_lock(avc_lock); ==== //depot/projects/trustedbsd/sedarwin8/policies/sedarwin/libselinux/src/fgetfilecon.c#3 (text+ko) ==== @@ -42,5 +42,8 @@ freecon(rcontext); } + if (ret >= 0 && *context) + return strlen(*context) + 1; + return ret; } ==== //depot/projects/trustedbsd/sedarwin8/policies/sedarwin/libselinux/src/file_path_suffixes.h#3 (text+ko) ==== @@ -15,3 +15,5 @@ S_(SEUSERS, "/seusers") S_(TRANSLATIONS, "/setrans.conf") S_(NETFILTER_CONTEXTS, "/contexts/netfilter_contexts") + S_(FILE_CONTEXTS_HOMEDIR, "/contexts/files/file_contexts.homedir") + S_(FILE_CONTEXTS_LOCAL, "/contexts/files/file_contexts.local") ==== //depot/projects/trustedbsd/sedarwin8/policies/sedarwin/libselinux/src/getfilecon.c#3 (text+ko) ==== @@ -40,6 +40,8 @@ ret = selinux_raw_to_trans_context(rcontext, context); freecon(rcontext); } + if (ret >= 0 && *context) + return strlen(*context) + 1; return ret; } ==== //depot/projects/trustedbsd/sedarwin8/policies/sedarwin/libselinux/src/lgetfilecon.c#3 (text+ko) ==== @@ -40,5 +40,7 @@ freecon(rcontext); } + if (ret >= 0 && *context) + return strlen(*context) + 1; return ret; } ==== //depot/projects/trustedbsd/sedarwin8/policies/sedarwin/libselinux/src/load_policy.c#3 (text+ko) ==== @@ -39,7 +39,7 @@ struct stat sb; size_t size; void *map, *data; - int fd, rc = -1, *values, len, i, prot, compat_net; + int fd, rc = -1, *values, len, i, prot; sepol_policydb_t *policydb; sepol_policy_file_t *pf; @@ -69,23 +69,20 @@ if (map == MAP_FAILED) goto close; - if (sepol_policy_file_create(&pf)) - goto unmap; - if (sepol_policydb_create(&policydb)) { - sepol_policy_file_free(pf); - goto unmap; - } - sepol_policy_file_set_mem(pf, data, size); - if (sepol_policydb_read(policydb, pf)) { - sepol_policy_file_free(pf); - sepol_policydb_free(policydb); - goto unmap; - } - - compat_net = sepol_policydb_compat_net(policydb); - if (vers > kernvers) { /* Need to downgrade to kernel-supported version. */ + if (sepol_policy_file_create(&pf)) + goto unmap; + if (sepol_policydb_create(&policydb)) { + sepol_policy_file_free(pf); + goto unmap; + } + sepol_policy_file_set_mem(pf, data, size); + if (sepol_policydb_read(policydb, pf)) { + sepol_policy_file_free(pf); + sepol_policydb_free(policydb); + goto unmap; + } if (sepol_policydb_set_vers(policydb, kernvers) || sepol_policydb_to_image(NULL, policydb, &data, &size)) { /* Downgrade failed, keep searching. */ @@ -96,11 +93,10 @@ vers--; goto search; } + sepol_policy_file_free(pf); + sepol_policydb_free(policydb); } - sepol_policy_file_free(pf); - sepol_policydb_free(policydb); - if (load_setlocaldefs) { void *olddata = data; size_t oldsize = size; @@ -140,20 +136,6 @@ rc = security_load_policy(data, size); -#ifdef __linux__ - if (!rc && selinux_mnt) { - int fd2; - char buf[2]; - snprintf(path, sizeof path, "%s/compat_net", selinux_mnt); - fd2 = open(path, O_RDWR); - if (fd2 < 0) - goto unmap; - buf[0] = compat_net ? '1' : '0'; - buf[1] = '\0'; - (void)write(fd2, buf, 2); - close(fd2); - } -#endif unmap: if (data != map) free(data); ==== //depot/projects/trustedbsd/sedarwin8/policies/sedarwin/libselinux/src/sedarwin_config.c#3 (text+ko) ==== @@ -8,26 +8,28 @@ #include "dso.h" /* Indices for file paths arrays. */ -#define BASEDIR 0 -#define POLICYDIR 1 -#define BINPOLICY 2 -#define MIGSCS 3 -#define CONTEXTS_DIR 4 -#define FILE_CONTEXTS 5 -#define HOMEDIR_CONTEXTS 6 -#define DEFAULT_CONTEXTS 7 -#define USER_CONTEXTS 8 -#define FAILSAFE_CONTEXT 9 -#define DEFAULT_TYPE 10 -#define BOOLEANS 11 -#define MEDIA_CONTEXTS 12 -#define REMOVABLE_CONTEXT 13 -#define CUSTOMIZABLE_TYPES 14 -#define USERS_DIR 15 -#define SEUSERS 16 -#define TRANSLATIONS 17 -#define NETFILTER_CONTEXTS 18 -#define NEL 19 +#define BASEDIR 0 +#define POLICYDIR 1 +#define BINPOLICY 2 +#define MIGSCS 3 +#define CONTEXTS_DIR 4 +#define FILE_CONTEXTS 5 +#define HOMEDIR_CONTEXTS 6 +#define DEFAULT_CONTEXTS 7 +#define USER_CONTEXTS 8 +#define FAILSAFE_CONTEXT 9 +#define DEFAULT_TYPE 10 +#define BOOLEANS 11 +#define MEDIA_CONTEXTS 12 +#define REMOVABLE_CONTEXT 13 +#define CUSTOMIZABLE_TYPES 14 +#define USERS_DIR 15 +#define SEUSERS 16 +#define TRANSLATIONS 17 +#define NETFILTER_CONTEXTS 18 +#define FILE_CONTEXTS_HOMEDIR 19 +#define FILE_CONTEXTS_LOCAL 20 +#define NEL 21 static char *file_paths[NEL]; static char *file_suffixes[NEL] = { @@ -221,14 +223,14 @@ { return (file_paths[BINPOLICY]); } -hidden_def(selinux_binary_policy_path) +hidden_def(selinux_binary_policy_path) const char * selinux_migscs_path(void) { return (file_paths[MIGSCS]); } -hidden_def(selinux_migscs_path) +hidden_def(selinux_migscs_path) const char * selinux_file_context_path(void) @@ -252,7 +254,7 @@ hidden_def(selinux_media_context_path) const char * -selinux_customizable_types_path(void) +selinux_customizable_types_path(void) { return (file_paths[CUSTOMIZABLE_TYPES]); } @@ -262,7 +264,7 @@ selinux_contexts_path(void) { return (file_paths[CONTEXTS_DIR]); -} +} const char * selinux_user_contexts_path(void) @@ -293,7 +295,7 @@ hidden_def(selinux_usersconf_path) const char * -selinux_translations_path() +selinux_translations_path() { return (file_paths[TRANSLATIONS]); } @@ -304,3 +306,15 @@ return (file_paths[NETFILTER_CONTEXTS]); } hidden_def(selinux_netfilter_context_path) + +const char *selinux_file_context_homedir_path() +{ + return (file_paths[FILE_CONTEXTS_HOMEDIR]); +} +hidden_def(selinux_file_context_homedir_path) + +const char *selinux_file_context_local_path() +{ + return (file_paths[FILE_CONTEXTS_LOCAL]); +} +hidden_def(selinux_file_context_local_path) ==== //depot/projects/trustedbsd/sedarwin8/policies/sedarwin/libselinux/src/selinux.py#3 (text+ko) ==== @@ -54,6 +54,8 @@ setfscreatecon = _selinux.setfscreatecon getkeycreatecon = _selinux.getkeycreatecon setkeycreatecon = _selinux.setkeycreatecon +getsockcreatecon = _selinux.getsockcreatecon +setsockcreatecon = _selinux.setsockcreatecon getfilecon = _selinux.getfilecon lgetfilecon = _selinux.lgetfilecon fgetfilecon = _selinux.fgetfilecon @@ -89,6 +91,8 @@ selinux_default_context_path = _selinux.selinux_default_context_path selinux_user_contexts_path = _selinux.selinux_user_contexts_path selinux_file_context_path = _selinux.selinux_file_context_path +selinux_file_context_homedir_path = _selinux.selinux_file_context_homedir_path +selinux_file_context_local_path = _selinux.selinux_file_context_local_path selinux_homedir_context_path = _selinux.selinux_homedir_context_path selinux_media_context_path = _selinux.selinux_media_context_path selinux_contexts_path = _selinux.selinux_contexts_path ==== //depot/projects/trustedbsd/sedarwin8/policies/sedarwin/libselinux/src/selinux_config.c#3 (text+ko) ==== @@ -36,7 +36,9 @@ #define SEUSERS 13 #define TRANSLATIONS 14 #define NETFILTER_CONTEXTS 15 -#define NEL 16 +#define FILE_CONTEXTS_HOMEDIR 16 +#define FILE_CONTEXTS_LOCAL 17 +#define NEL 18 /* New layout is relative to SELINUXDIR/policytype. */ static char *file_paths[NEL]; @@ -392,3 +394,17 @@ } hidden_def(selinux_netfilter_context_path) + +const char *selinux_file_context_homedir_path() +{ + return get_path(FILE_CONTEXTS_HOMEDIR); +} + +hidden_def(selinux_file_context_homedir_path) + +const char *selinux_file_context_local_path() +{ + return get_path(FILE_CONTEXTS_LOCAL); +} + +hidden_def(selinux_file_context_local_path) ==== //depot/projects/trustedbsd/sedarwin8/policies/sedarwin/libselinux/src/selinux_internal.h#3 (text+ko) ==== @@ -44,8 +44,10 @@ hidden_proto(setexeccon_raw) hidden_proto(getfscreatecon_raw) hidden_proto(getkeycreatecon_raw) + hidden_proto(getsockcreatecon_raw) hidden_proto(setfscreatecon_raw) hidden_proto(setkeycreatecon_raw) + hidden_proto(setsockcreatecon_raw) hidden_proto(security_getenforce) hidden_proto(security_setenforce) hidden_proto(selinux_binary_policy_path) @@ -54,6 +56,8 @@ hidden_proto(selinux_failsafe_context_path) hidden_proto(selinux_removable_context_path) hidden_proto(selinux_file_context_path) + hidden_proto(selinux_file_context_homedir_path) + hidden_proto(selinux_file_context_local_path) hidden_proto(selinux_netfilter_context_path) hidden_proto(selinux_homedir_context_path) hidden_proto(selinux_user_contexts_path) @@ -75,11 +79,3 @@ extern int require_seusers hidden; extern int selinux_page_size hidden; extern int cache_trans hidden; - -/* Generic /proc pid attr handlers. These will either get or set the context - from or into the proc location passed to them. */ -extern int hidden getprocattrcon(security_context_t * con, const char *path); -extern int hidden getprocattrcon_raw(security_context_t * con, - const char *path); -extern int hidden setprocattrcon(security_context_t con, const char *path); -extern int hidden setprocattrcon_raw(security_context_t con, const char *path); ==== //depot/projects/trustedbsd/sedarwin8/policies/sedarwin/libselinux/src/selinuxswig.i#3 (text+ko) ==== @@ -54,6 +54,8 @@ extern int setfscreatecon(security_context_t context); extern int getkeycreatecon(security_context_t *con); extern int setkeycreatecon(security_context_t context); +extern int getsockcreatecon(security_context_t *con); +extern int setsockcreatecon(security_context_t context); extern int getfilecon(const char *path, security_context_t *con); extern int lgetfilecon(const char *path, security_context_t *con); extern int fgetfilecon(int fd, security_context_t *con); @@ -99,6 +101,8 @@ extern const char *selinux_default_context_path(void); extern const char *selinux_user_contexts_path(void); extern const char *selinux_file_context_path(void); +extern const char *selinux_file_context_homedir_path(void); +extern const char *selinux_file_context_local_path(void); extern const char *selinux_homedir_context_path(void); extern const char *selinux_media_context_path(void); extern const char *selinux_contexts_path(void); ==== //depot/projects/trustedbsd/sedarwin8/policies/sedarwin/libselinux/src/selinuxswig_wrap.c#3 (text+ko) ==== @@ -3064,6 +3064,50 @@ } +SWIGINTERN PyObject *_wrap_getsockcreatecon(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { + PyObject *resultobj = 0; + security_context_t *arg1 = (security_context_t *) 0 ; + int result; + security_context_t temp1 ; + char *temp10 ; + + { + arg1 = &temp1; + } + if (!PyArg_ParseTuple(args,(char *)":getsockcreatecon")) SWIG_fail; + result = (int)getsockcreatecon(arg1); + resultobj = SWIG_From_int((int)(result)); + { + if (*arg1) + temp10 = *arg1; + else + temp10 = ""; + resultobj = SWIG_Python_AppendOutput(resultobj, PyString_FromString(temp10)); + } + return resultobj; +fail: + return NULL; +} + + +SWIGINTERN PyObject *_wrap_setsockcreatecon(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { + PyObject *resultobj = 0; + security_context_t arg1 ; + int result; + PyObject * obj0 = 0 ; + + if (!PyArg_ParseTuple(args,(char *)"O:setsockcreatecon",&obj0)) SWIG_fail; + { + arg1 = (security_context_t)PyString_AsString(obj0); + } + result = (int)setsockcreatecon(arg1); + resultobj = SWIG_From_int((int)(result)); + return resultobj; +fail: + return NULL; +} + + SWIGINTERN PyObject *_wrap_getfilecon(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; char *arg1 = (char *) 0 ; @@ -3878,6 +3922,32 @@ } +SWIGINTERN PyObject *_wrap_selinux_file_context_homedir_path(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { + PyObject *resultobj = 0; + char *result = 0 ; + + if (!PyArg_ParseTuple(args,(char *)":selinux_file_context_homedir_path")) SWIG_fail; + result = (char *)selinux_file_context_homedir_path(); + resultobj = SWIG_FromCharPtr(result); + return resultobj; +fail: + return NULL; +} + + +SWIGINTERN PyObject *_wrap_selinux_file_context_local_path(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { + PyObject *resultobj = 0; + char *result = 0 ; + + if (!PyArg_ParseTuple(args,(char *)":selinux_file_context_local_path")) SWIG_fail; + result = (char *)selinux_file_context_local_path(); + resultobj = SWIG_FromCharPtr(result); + return resultobj; +fail: + return NULL; +} + + SWIGINTERN PyObject *_wrap_selinux_homedir_context_path(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; char *result = 0 ; @@ -4285,6 +4355,8 @@ { (char *)"setfscreatecon", _wrap_setfscreatecon, METH_VARARGS, NULL}, { (char *)"getkeycreatecon", _wrap_getkeycreatecon, METH_VARARGS, NULL}, { (char *)"setkeycreatecon", _wrap_setkeycreatecon, METH_VARARGS, NULL}, + { (char *)"getsockcreatecon", _wrap_getsockcreatecon, METH_VARARGS, NULL}, + { (char *)"setsockcreatecon", _wrap_setsockcreatecon, METH_VARARGS, NULL}, { (char *)"getfilecon", _wrap_getfilecon, METH_VARARGS, NULL}, { (char *)"lgetfilecon", _wrap_lgetfilecon, METH_VARARGS, NULL}, { (char *)"fgetfilecon", _wrap_fgetfilecon, METH_VARARGS, NULL}, @@ -4318,6 +4390,8 @@ { (char *)"selinux_default_context_path", _wrap_selinux_default_context_path, METH_VARARGS, NULL}, { (char *)"selinux_user_contexts_path", _wrap_selinux_user_contexts_path, METH_VARARGS, NULL}, { (char *)"selinux_file_context_path", _wrap_selinux_file_context_path, METH_VARARGS, NULL}, + { (char *)"selinux_file_context_homedir_path", _wrap_selinux_file_context_homedir_path, METH_VARARGS, NULL}, + { (char *)"selinux_file_context_local_path", _wrap_selinux_file_context_local_path, METH_VARARGS, NULL}, { (char *)"selinux_homedir_context_path", _wrap_selinux_homedir_context_path, METH_VARARGS, NULL}, { (char *)"selinux_media_context_path", _wrap_selinux_media_context_path, METH_VARARGS, NULL}, { (char *)"selinux_contexts_path", _wrap_selinux_contexts_path, METH_VARARGS, NULL},