rpms/libselinux/F-7 libselinux-rhat.patch, 1.121, 1.122 libselinux.spec, 1.268, 1.269
Daniel J Walsh (dwalsh)
fedora-extras-commits at redhat.com
Fri Sep 7 13:26:28 UTC 2007
Author: dwalsh
Update of /cvs/extras/rpms/libselinux/F-7
In directory cvs-int.fedora.redhat.com:/tmp/cvs-serv18754
Modified Files:
libselinux-rhat.patch libselinux.spec
Log Message:
* Thu Sep 6 2007 Dan Walsh <dwalsh at redhat.com> - 2.0.14-6
- fix swig binding for rpm_execcon
libselinux-rhat.patch:
Index: libselinux-rhat.patch
===================================================================
RCS file: /cvs/extras/rpms/libselinux/F-7/libselinux-rhat.patch,v
retrieving revision 1.121
retrieving revision 1.122
diff -u -r1.121 -r1.122
--- libselinux-rhat.patch 11 Jul 2007 16:05:02 -0000 1.121
+++ libselinux-rhat.patch 7 Sep 2007 13:26:25 -0000 1.122
@@ -1,1095 +1,6 @@
-diff -up libselinux-2.0.14/src/selinuxswig_wrap.c.rhat libselinux-2.0.14/src/selinuxswig_wrap.c
---- libselinux-2.0.14/src/selinuxswig_wrap.c.rhat 2007-04-24 10:36:20.000000000 -0400
-+++ libselinux-2.0.14/src/selinuxswig_wrap.c 2007-07-11 12:00:41.000000000 -0400
-@@ -2449,11 +2449,11 @@ SWIG_Python_MustGetPtr(PyObject *obj, sw
- /* -------- TYPES TABLE (BEGIN) -------- */
-
- #define SWIGTYPE_p_SELboolean swig_types[0]
--#define SWIGTYPE_p_access_vector_t swig_types[1]
--#define SWIGTYPE_p_char swig_types[2]
--#define SWIGTYPE_p_int swig_types[3]
--#define SWIGTYPE_p_p_char swig_types[4]
--#define SWIGTYPE_p_p_p_char swig_types[5]
-+#define SWIGTYPE_p_char swig_types[1]
-+#define SWIGTYPE_p_int swig_types[2]
-+#define SWIGTYPE_p_p_char swig_types[3]
-+#define SWIGTYPE_p_p_p_char swig_types[4]
-+#define SWIGTYPE_p_p_security_context_t swig_types[5]
- #define SWIGTYPE_p_security_context_t swig_types[6]
- #define SWIGTYPE_p_unsigned_int swig_types[7]
- static swig_type_info *swig_types[9];
-@@ -2485,6 +2485,99 @@ static swig_module_info swig_module = {s
-
-
- #include "selinux/selinux.h"
-+ #include "selinux/get_context_list.h"
-+
-+
-+SWIGINTERN swig_type_info*
-+SWIG_pchar_descriptor(void)
-+{
-+ static int init = 0;
-+ static swig_type_info* info = 0;
-+ if (!init) {
-+ info = SWIG_TypeQuery("_p_char");
-+ init = 1;
-+ }
-+ return info;
-+}
-+
-+
-+SWIGINTERNINLINE PyObject *
-+SWIG_FromCharPtrAndSize(const char* carray, size_t size)
-+{
-+ if (carray) {
-+ if (size > INT_MAX) {
-+ swig_type_info* pchar_descriptor = SWIG_pchar_descriptor();
-+ return pchar_descriptor ?
-+ SWIG_NewPointerObj((char *)(carray), pchar_descriptor, 0) : SWIG_Py_Void();
-+ } else {
-+ return PyString_FromStringAndSize(carray, (int)(size));
-+ }
-+ } else {
-+ return SWIG_Py_Void();
-+ }
-+}
-+
-+
-+SWIGINTERNINLINE PyObject *
-+SWIG_FromCharPtr(const char *cptr)
-+{
-+ return SWIG_FromCharPtrAndSize(cptr, (cptr ? strlen(cptr) : 0));
-+}
-+
-+
-+SWIGINTERN int
-+SWIG_AsCharPtrAndSize(PyObject *obj, char** cptr, size_t* psize, int *alloc)
-+{
-+ if (PyString_Check(obj)) {
-+ char *cstr; Py_ssize_t len;
-+ PyString_AsStringAndSize(obj, &cstr, &len);
-+ if (cptr) {
-+ if (alloc) {
-+ /*
-+ In python the user should not be able to modify the inner
-+ string representation. To warranty that, if you define
-+ SWIG_PYTHON_SAFE_CSTRINGS, a new/copy of the python string
-+ buffer is always returned.
-+
-+ The default behavior is just to return the pointer value,
-+ so, be careful.
-+ */
-+#if defined(SWIG_PYTHON_SAFE_CSTRINGS)
-+ if (*alloc != SWIG_OLDOBJ)
-+#else
-+ if (*alloc == SWIG_NEWOBJ)
-+#endif
-+ {
-+ *cptr = (char *)memcpy((char *)malloc((len + 1)*sizeof(char)), cstr, sizeof(char)*(len + 1));
-+ *alloc = SWIG_NEWOBJ;
-+ }
-+ else {
-+ *cptr = cstr;
-+ *alloc = SWIG_OLDOBJ;
-+ }
-+ } else {
-+ *cptr = PyString_AsString(obj);
-+ }
-+ }
-+ if (psize) *psize = len + 1;
-+ return SWIG_OK;
-+ } else {
-+ swig_type_info* pchar_descriptor = SWIG_pchar_descriptor();
-+ if (pchar_descriptor) {
-+ void* vptr = 0;
-+ if (SWIG_ConvertPtr(obj, &vptr, pchar_descriptor, 0) == SWIG_OK) {
-+ if (cptr) *cptr = (char *) vptr;
-+ if (psize) *psize = vptr ? (strlen((char *)vptr) + 1) : 0;
-+ if (alloc) *alloc = SWIG_OLDOBJ;
-+ return SWIG_OK;
-+ }
-+ }
-+ }
-+ return SWIG_TypeError;
-+}
-+
-+
-+
-
-
- #define SWIG_From_long PyInt_FromLong
-@@ -2644,74 +2737,6 @@ SWIG_AsVal_int (PyObject * obj, int *val
- }
-
-
--SWIGINTERN swig_type_info*
--SWIG_pchar_descriptor(void)
--{
-- static int init = 0;
-- static swig_type_info* info = 0;
-- if (!init) {
-- info = SWIG_TypeQuery("_p_char");
-- init = 1;
-- }
-- return info;
--}
--
--
--SWIGINTERN int
--SWIG_AsCharPtrAndSize(PyObject *obj, char** cptr, size_t* psize, int *alloc)
--{
-- if (PyString_Check(obj)) {
-- char *cstr; Py_ssize_t len;
-- PyString_AsStringAndSize(obj, &cstr, &len);
-- if (cptr) {
-- if (alloc) {
-- /*
-- In python the user should not be able to modify the inner
-- string representation. To warranty that, if you define
-- SWIG_PYTHON_SAFE_CSTRINGS, a new/copy of the python string
-- buffer is always returned.
--
-- The default behavior is just to return the pointer value,
-- so, be careful.
-- */
--#if defined(SWIG_PYTHON_SAFE_CSTRINGS)
-- if (*alloc != SWIG_OLDOBJ)
--#else
-- if (*alloc == SWIG_NEWOBJ)
--#endif
-- {
-- *cptr = (char *)memcpy((char *)malloc((len + 1)*sizeof(char)), cstr, sizeof(char)*(len + 1));
-- *alloc = SWIG_NEWOBJ;
-- }
-- else {
-- *cptr = cstr;
-- *alloc = SWIG_OLDOBJ;
-- }
-- } else {
-- *cptr = PyString_AsString(obj);
-- }
-- }
-- if (psize) *psize = len + 1;
-- return SWIG_OK;
-- } else {
-- swig_type_info* pchar_descriptor = SWIG_pchar_descriptor();
-- if (pchar_descriptor) {
-- void* vptr = 0;
-- if (SWIG_ConvertPtr(obj, &vptr, pchar_descriptor, 0) == SWIG_OK) {
-- if (cptr) *cptr = (char *) vptr;
-- if (psize) *psize = vptr ? (strlen((char *)vptr) + 1) : 0;
-- if (alloc) *alloc = SWIG_OLDOBJ;
-- return SWIG_OK;
-- }
-- }
-- }
-- return SWIG_TypeError;
--}
--
--
--
--
--
- SWIGINTERN int
- SWIG_AsVal_unsigned_SS_long (PyObject *obj, unsigned long *val)
- {
-@@ -2781,33 +2806,396 @@ SWIG_AsVal_unsigned_SS_int (PyObject * o
- return res;
- }
-
-+#ifdef __cplusplus
-+extern "C" {
-+#endif
-+SWIGINTERN PyObject *_wrap_get_ordered_context_list(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
-+ PyObject *resultobj = 0;
-+ char *arg1 = (char *) 0 ;
-+ security_context_t arg2 ;
-+ security_context_t **arg3 = (security_context_t **) 0 ;
-+ int result;
-+ int res1 ;
-+ char *buf1 = 0 ;
-+ int alloc1 = 0 ;
-+ void *argp3 = 0 ;
-+ int res3 = 0 ;
-+ PyObject * obj0 = 0 ;
-+ PyObject * obj1 = 0 ;
-+ PyObject * obj2 = 0 ;
-+
-+ if (!PyArg_ParseTuple(args,(char *)"OOO:get_ordered_context_list",&obj0,&obj1,&obj2)) SWIG_fail;
-+ res1 = SWIG_AsCharPtrAndSize(obj0, &buf1, NULL, &alloc1);
-+ if (!SWIG_IsOK(res1)) {
-+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "get_ordered_context_list" "', argument " "1"" of type '" "char const *""'");
-+ }
-+ arg1 = (char *)(buf1);
-+ {
-+ arg2 = (security_context_t)PyString_AsString(obj1);
-+ }
-+ res3 = SWIG_ConvertPtr(obj2, &argp3,SWIGTYPE_p_p_security_context_t, 0 | 0 );
-+ if (!SWIG_IsOK(res3)) {
-+ SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "get_ordered_context_list" "', argument " "3"" of type '" "security_context_t **""'");
-+ }
-+ arg3 = (security_context_t **)(argp3);
-+ result = (int)get_ordered_context_list((char const *)arg1,arg2,arg3);
-+ resultobj = SWIG_From_int((int)(result));
-+ if (alloc1 == SWIG_NEWOBJ) free((char*)buf1);
-+ return resultobj;
-+fail:
-+ if (alloc1 == SWIG_NEWOBJ) free((char*)buf1);
-+ return NULL;
-+}
-+
-+
-+SWIGINTERN PyObject *_wrap_get_ordered_context_list_with_level(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
-+ PyObject *resultobj = 0;
-+ char *arg1 = (char *) 0 ;
-+ char *arg2 = (char *) 0 ;
-+ security_context_t arg3 ;
-+ security_context_t **arg4 = (security_context_t **) 0 ;
-+ int result;
-+ int res1 ;
-+ char *buf1 = 0 ;
-+ int alloc1 = 0 ;
-+ int res2 ;
-+ char *buf2 = 0 ;
-+ int alloc2 = 0 ;
-+ void *argp4 = 0 ;
-+ int res4 = 0 ;
-+ PyObject * obj0 = 0 ;
-+ PyObject * obj1 = 0 ;
-+ PyObject * obj2 = 0 ;
-+ PyObject * obj3 = 0 ;
-+
-+ if (!PyArg_ParseTuple(args,(char *)"OOOO:get_ordered_context_list_with_level",&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
-+ res1 = SWIG_AsCharPtrAndSize(obj0, &buf1, NULL, &alloc1);
-+ if (!SWIG_IsOK(res1)) {
-+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "get_ordered_context_list_with_level" "', argument " "1"" of type '" "char const *""'");
-+ }
-+ arg1 = (char *)(buf1);
-+ res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2);
-+ if (!SWIG_IsOK(res2)) {
-+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "get_ordered_context_list_with_level" "', argument " "2"" of type '" "char const *""'");
-+ }
-+ arg2 = (char *)(buf2);
-+ {
-+ arg3 = (security_context_t)PyString_AsString(obj2);
-+ }
-+ res4 = SWIG_ConvertPtr(obj3, &argp4,SWIGTYPE_p_p_security_context_t, 0 | 0 );
-+ if (!SWIG_IsOK(res4)) {
-+ SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "get_ordered_context_list_with_level" "', argument " "4"" of type '" "security_context_t **""'");
-+ }
-+ arg4 = (security_context_t **)(argp4);
-+ result = (int)get_ordered_context_list_with_level((char const *)arg1,(char const *)arg2,arg3,arg4);
-+ resultobj = SWIG_From_int((int)(result));
-+ if (alloc1 == SWIG_NEWOBJ) free((char*)buf1);
-+ if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
-+ return resultobj;
-+fail:
-+ if (alloc1 == SWIG_NEWOBJ) free((char*)buf1);
-+ if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
-+ return NULL;
-+}
-+
-+
-+SWIGINTERN PyObject *_wrap_get_default_context(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
-+ PyObject *resultobj = 0;
-+ char *arg1 = (char *) 0 ;
-+ security_context_t arg2 ;
-+ security_context_t *arg3 = (security_context_t *) 0 ;
-+ int result;
-+ int res1 ;
-+ char *buf1 = 0 ;
-+ int alloc1 = 0 ;
-+ security_context_t temp3 = NULL ;
-+ char *temp30 = NULL ;
-+ PyObject * obj0 = 0 ;
-+ PyObject * obj1 = 0 ;
-+
-+ {
-+ arg3 = &temp3;
-+ }
-+ if (!PyArg_ParseTuple(args,(char *)"OO:get_default_context",&obj0,&obj1)) SWIG_fail;
-+ res1 = SWIG_AsCharPtrAndSize(obj0, &buf1, NULL, &alloc1);
-+ if (!SWIG_IsOK(res1)) {
-+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "get_default_context" "', argument " "1"" of type '" "char const *""'");
-+ }
-+ arg1 = (char *)(buf1);
-+ {
-+ arg2 = (security_context_t)PyString_AsString(obj1);
-+ }
-+ result = (int)get_default_context((char const *)arg1,arg2,arg3);
-+ resultobj = SWIG_From_int((int)(result));
-+ {
-+ if (*arg3)
-+ temp30 = *arg3;
-+ else
-+ temp30 = "";
-+ resultobj = SWIG_Python_AppendOutput(resultobj, PyString_FromString(temp30));
-+ }
-+ if (alloc1 == SWIG_NEWOBJ) free((char*)buf1);
-+ return resultobj;
-+fail:
-+ if (alloc1 == SWIG_NEWOBJ) free((char*)buf1);
-+ return NULL;
-+}
-+
-+
-+SWIGINTERN PyObject *_wrap_get_default_context_with_level(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
-+ PyObject *resultobj = 0;
-+ char *arg1 = (char *) 0 ;
-+ char *arg2 = (char *) 0 ;
-+ security_context_t arg3 ;
-+ security_context_t *arg4 = (security_context_t *) 0 ;
-+ int result;
-+ int res1 ;
-+ char *buf1 = 0 ;
-+ int alloc1 = 0 ;
-+ int res2 ;
-+ char *buf2 = 0 ;
-+ int alloc2 = 0 ;
-+ security_context_t temp4 = NULL ;
-+ char *temp40 = NULL ;
-+ PyObject * obj0 = 0 ;
-+ PyObject * obj1 = 0 ;
-+ PyObject * obj2 = 0 ;
-+
-+ {
-+ arg4 = &temp4;
-+ }
-+ if (!PyArg_ParseTuple(args,(char *)"OOO:get_default_context_with_level",&obj0,&obj1,&obj2)) SWIG_fail;
-+ res1 = SWIG_AsCharPtrAndSize(obj0, &buf1, NULL, &alloc1);
-+ if (!SWIG_IsOK(res1)) {
-+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "get_default_context_with_level" "', argument " "1"" of type '" "char const *""'");
-+ }
-+ arg1 = (char *)(buf1);
-+ res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2);
-+ if (!SWIG_IsOK(res2)) {
-+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "get_default_context_with_level" "', argument " "2"" of type '" "char const *""'");
-+ }
-+ arg2 = (char *)(buf2);
-+ {
-+ arg3 = (security_context_t)PyString_AsString(obj2);
-+ }
-+ result = (int)get_default_context_with_level((char const *)arg1,(char const *)arg2,arg3,arg4);
-+ resultobj = SWIG_From_int((int)(result));
-+ {
-+ if (*arg4)
-+ temp40 = *arg4;
-+ else
-+ temp40 = "";
-+ resultobj = SWIG_Python_AppendOutput(resultobj, PyString_FromString(temp40));
-+ }
-+ if (alloc1 == SWIG_NEWOBJ) free((char*)buf1);
-+ if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
-+ return resultobj;
-+fail:
-+ if (alloc1 == SWIG_NEWOBJ) free((char*)buf1);
-+ if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
-+ return NULL;
-+}
-+
-+
-+SWIGINTERN PyObject *_wrap_get_default_context_with_role(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
-+ PyObject *resultobj = 0;
-+ char *arg1 = (char *) 0 ;
-+ char *arg2 = (char *) 0 ;
-+ security_context_t arg3 ;
-+ security_context_t *arg4 = (security_context_t *) 0 ;
-+ int result;
-+ int res1 ;
-+ char *buf1 = 0 ;
-+ int alloc1 = 0 ;
-+ int res2 ;
-+ char *buf2 = 0 ;
-+ int alloc2 = 0 ;
-+ security_context_t temp4 = NULL ;
-+ char *temp40 = NULL ;
-+ PyObject * obj0 = 0 ;
-+ PyObject * obj1 = 0 ;
-+ PyObject * obj2 = 0 ;
-+
-+ {
-+ arg4 = &temp4;
-+ }
-+ if (!PyArg_ParseTuple(args,(char *)"OOO:get_default_context_with_role",&obj0,&obj1,&obj2)) SWIG_fail;
-+ res1 = SWIG_AsCharPtrAndSize(obj0, &buf1, NULL, &alloc1);
-+ if (!SWIG_IsOK(res1)) {
-+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "get_default_context_with_role" "', argument " "1"" of type '" "char const *""'");
-+ }
-+ arg1 = (char *)(buf1);
-+ res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2);
-+ if (!SWIG_IsOK(res2)) {
-+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "get_default_context_with_role" "', argument " "2"" of type '" "char const *""'");
-+ }
-+ arg2 = (char *)(buf2);
-+ {
-+ arg3 = (security_context_t)PyString_AsString(obj2);
-+ }
-+ result = (int)get_default_context_with_role((char const *)arg1,(char const *)arg2,arg3,arg4);
-+ resultobj = SWIG_From_int((int)(result));
-+ {
-+ if (*arg4)
-+ temp40 = *arg4;
-+ else
-+ temp40 = "";
-+ resultobj = SWIG_Python_AppendOutput(resultobj, PyString_FromString(temp40));
-+ }
-+ if (alloc1 == SWIG_NEWOBJ) free((char*)buf1);
-+ if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
-+ return resultobj;
-+fail:
-+ if (alloc1 == SWIG_NEWOBJ) free((char*)buf1);
-+ if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
-+ return NULL;
-+}
-+
-+
-+SWIGINTERN PyObject *_wrap_get_default_context_with_rolelevel(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
-+ PyObject *resultobj = 0;
-+ char *arg1 = (char *) 0 ;
-+ char *arg2 = (char *) 0 ;
-+ char *arg3 = (char *) 0 ;
-+ security_context_t arg4 ;
-+ security_context_t *arg5 = (security_context_t *) 0 ;
-+ int result;
-+ int res1 ;
-+ char *buf1 = 0 ;
-+ int alloc1 = 0 ;
-+ int res2 ;
-+ char *buf2 = 0 ;
-+ int alloc2 = 0 ;
-+ int res3 ;
-+ char *buf3 = 0 ;
-+ int alloc3 = 0 ;
-+ security_context_t temp5 = NULL ;
-+ char *temp50 = NULL ;
-+ PyObject * obj0 = 0 ;
-+ PyObject * obj1 = 0 ;
-+ PyObject * obj2 = 0 ;
-+ PyObject * obj3 = 0 ;
-+
-+ {
-+ arg5 = &temp5;
-+ }
-+ if (!PyArg_ParseTuple(args,(char *)"OOOO:get_default_context_with_rolelevel",&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
-+ res1 = SWIG_AsCharPtrAndSize(obj0, &buf1, NULL, &alloc1);
-+ if (!SWIG_IsOK(res1)) {
-+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "get_default_context_with_rolelevel" "', argument " "1"" of type '" "char const *""'");
-+ }
-+ arg1 = (char *)(buf1);
-+ res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2);
-+ if (!SWIG_IsOK(res2)) {
-+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "get_default_context_with_rolelevel" "', argument " "2"" of type '" "char const *""'");
-+ }
-+ arg2 = (char *)(buf2);
-+ res3 = SWIG_AsCharPtrAndSize(obj2, &buf3, NULL, &alloc3);
-+ if (!SWIG_IsOK(res3)) {
-+ SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "get_default_context_with_rolelevel" "', argument " "3"" of type '" "char const *""'");
-+ }
-+ arg3 = (char *)(buf3);
-+ {
-+ arg4 = (security_context_t)PyString_AsString(obj3);
-+ }
-+ result = (int)get_default_context_with_rolelevel((char const *)arg1,(char const *)arg2,(char const *)arg3,arg4,arg5);
-+ resultobj = SWIG_From_int((int)(result));
-+ {
-+ if (*arg5)
-+ temp50 = *arg5;
-+ else
-+ temp50 = "";
-+ resultobj = SWIG_Python_AppendOutput(resultobj, PyString_FromString(temp50));
-+ }
-+ if (alloc1 == SWIG_NEWOBJ) free((char*)buf1);
-+ if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
-+ if (alloc3 == SWIG_NEWOBJ) free((char*)buf3);
-+ return resultobj;
-+fail:
-+ if (alloc1 == SWIG_NEWOBJ) free((char*)buf1);
-+ if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
-+ if (alloc3 == SWIG_NEWOBJ) free((char*)buf3);
-+ return NULL;
-+}
-+
-+
-+SWIGINTERN PyObject *_wrap_query_user_context(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
-+ PyObject *resultobj = 0;
-+ security_context_t *arg1 = (security_context_t *) 0 ;
-+ security_context_t *arg2 = (security_context_t *) 0 ;
-+ int result;
-+ security_context_t temp1 = NULL ;
-+ security_context_t temp2 = NULL ;
-+ char *temp10 = NULL ;
-+ char *temp20 = NULL ;
-+
-+ {
-+ arg1 = &temp1;
-+ }
-+ {
-+ arg2 = &temp2;
-+ }
-+ if (!PyArg_ParseTuple(args,(char *)":query_user_context")) SWIG_fail;
-+ result = (int)query_user_context(arg1,arg2);
-+ resultobj = SWIG_From_int((int)(result));
-+ {
-+ if (*arg1)
-+ temp10 = *arg1;
-+ else
-+ temp10 = "";
-+ resultobj = SWIG_Python_AppendOutput(resultobj, PyString_FromString(temp10));
-+ }
-+ {
-+ if (*arg2)
-+ temp20 = *arg2;
-+ else
-+ temp20 = "";
-+ resultobj = SWIG_Python_AppendOutput(resultobj, PyString_FromString(temp20));
-+ }
-+ return resultobj;
-+fail:
-+ return NULL;
-+}
-+
-
--SWIGINTERNINLINE PyObject *
--SWIG_FromCharPtrAndSize(const char* carray, size_t size)
--{
-- if (carray) {
-- if (size > INT_MAX) {
-- swig_type_info* pchar_descriptor = SWIG_pchar_descriptor();
-- return pchar_descriptor ?
-- SWIG_NewPointerObj((char *)(carray), pchar_descriptor, 0) : SWIG_Py_Void();
-- } else {
-- return PyString_FromStringAndSize(carray, (int)(size));
-- }
-- } else {
-- return SWIG_Py_Void();
-+SWIGINTERN PyObject *_wrap_manual_user_enter_context(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
-+ PyObject *resultobj = 0;
-+ char *arg1 = (char *) 0 ;
-+ security_context_t *arg2 = (security_context_t *) 0 ;
-+ int result;
-+ int res1 ;
-+ char *buf1 = 0 ;
-+ int alloc1 = 0 ;
-+ security_context_t temp2 = NULL ;
-+ char *temp20 = NULL ;
-+ PyObject * obj0 = 0 ;
-+
-+ {
-+ arg2 = &temp2;
-+ }
-+ if (!PyArg_ParseTuple(args,(char *)"O:manual_user_enter_context",&obj0)) SWIG_fail;
-+ res1 = SWIG_AsCharPtrAndSize(obj0, &buf1, NULL, &alloc1);
-+ if (!SWIG_IsOK(res1)) {
-+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "manual_user_enter_context" "', argument " "1"" of type '" "char const *""'");
-+ }
-+ arg1 = (char *)(buf1);
-+ result = (int)manual_user_enter_context((char const *)arg1,arg2);
-+ resultobj = SWIG_From_int((int)(result));
-+ {
-+ if (*arg2)
-+ temp20 = *arg2;
-+ else
-+ temp20 = "";
-+ resultobj = SWIG_Python_AppendOutput(resultobj, PyString_FromString(temp20));
- }
-+ if (alloc1 == SWIG_NEWOBJ) free((char*)buf1);
-+ return resultobj;
-+fail:
-+ if (alloc1 == SWIG_NEWOBJ) free((char*)buf1);
-+ return NULL;
- }
-
-
--SWIGINTERNINLINE PyObject *
--SWIG_FromCharPtr(const char *cptr)
--{
-- return SWIG_FromCharPtrAndSize(cptr, (cptr ? strlen(cptr) : 0));
--}
--
--#ifdef __cplusplus
--extern "C" {
--#endif
- SWIGINTERN PyObject *_wrap_is_selinux_enabled(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
- PyObject *resultobj = 0;
- int result;
-@@ -2834,6 +3222,48 @@ fail:
- }
-
-
-+SWIGINTERN PyObject *_wrap_freecon(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
-+ PyObject *resultobj = 0;
-+ security_context_t arg1 ;
-+ PyObject * obj0 = 0 ;
-+
-+ if (!PyArg_ParseTuple(args,(char *)"O:freecon",&obj0)) SWIG_fail;
-+ {
-+ arg1 = (security_context_t)PyString_AsString(obj0);
-+ }
-+ freecon(arg1);
-+ resultobj = SWIG_Py_Void();
-+ return resultobj;
-+fail:
-+ return NULL;
-+}
-+
-+
-+SWIGINTERN PyObject *_wrap_freeconary(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
-+ PyObject *resultobj = 0;
-+ security_context_t *arg1 = (security_context_t *) 0 ;
-+ security_context_t temp1 = NULL ;
-+ char *temp10 = NULL ;
-+
-+ {
-+ arg1 = &temp1;
-+ }
-+ if (!PyArg_ParseTuple(args,(char *)":freeconary")) SWIG_fail;
-+ freeconary(arg1);
-+ resultobj = SWIG_Py_Void();
-+ {
-+ if (*arg1)
-+ temp10 = *arg1;
-+ else
-+ temp10 = "";
-+ resultobj = SWIG_Python_AppendOutput(resultobj, PyString_FromString(temp10));
-+ }
-+ return resultobj;
-+fail:
-+ return NULL;
-+}
-+
-+
- SWIGINTERN PyObject *_wrap_getcon(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
- PyObject *resultobj = 0;
- security_context_t *arg1 = (security_context_t *) 0 ;
-@@ -3777,6 +4207,55 @@ fail:
- }
-
-
-+SWIGINTERN PyObject *_wrap_matchpathcon_init_prefix(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
-+ PyObject *resultobj = 0;
-+ char *arg1 = (char *) 0 ;
-+ char *arg2 = (char *) 0 ;
-+ int result;
-+ int res1 ;
-+ char *buf1 = 0 ;
-+ int alloc1 = 0 ;
-+ int res2 ;
-+ char *buf2 = 0 ;
-+ int alloc2 = 0 ;
-+ PyObject * obj0 = 0 ;
-+ PyObject * obj1 = 0 ;
-+
-+ if (!PyArg_ParseTuple(args,(char *)"OO:matchpathcon_init_prefix",&obj0,&obj1)) SWIG_fail;
-+ res1 = SWIG_AsCharPtrAndSize(obj0, &buf1, NULL, &alloc1);
-+ if (!SWIG_IsOK(res1)) {
-+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "matchpathcon_init_prefix" "', argument " "1"" of type '" "char const *""'");
-+ }
-+ arg1 = (char *)(buf1);
-+ res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2);
-+ if (!SWIG_IsOK(res2)) {
-+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "matchpathcon_init_prefix" "', argument " "2"" of type '" "char const *""'");
-+ }
-+ arg2 = (char *)(buf2);
-+ result = (int)matchpathcon_init_prefix((char const *)arg1,(char const *)arg2);
-+ resultobj = SWIG_From_int((int)(result));
-+ if (alloc1 == SWIG_NEWOBJ) free((char*)buf1);
-+ if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
-+ return resultobj;
-+fail:
-+ if (alloc1 == SWIG_NEWOBJ) free((char*)buf1);
-+ if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
-+ return NULL;
-+}
-+
-+
-+SWIGINTERN PyObject *_wrap_matchpathcon_fini(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
-+ PyObject *resultobj = 0;
-+
-+ if (!PyArg_ParseTuple(args,(char *)":matchpathcon_fini")) SWIG_fail;
-+ matchpathcon_fini();
-+ resultobj = SWIG_Py_Void();
-+ return resultobj;
-+fail:
-+ return NULL;
-+}
-+
-+
- SWIGINTERN PyObject *_wrap_matchmediacon(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
- PyObject *resultobj = 0;
- char *arg1 = (char *) 0 ;
-@@ -3994,6 +4473,19 @@ fail:
- }
-
-
-+SWIGINTERN PyObject *_wrap_selinux_securetty_types_path(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
-+ PyObject *resultobj = 0;
-+ char *result = 0 ;
-+
-+ if (!PyArg_ParseTuple(args,(char *)":selinux_securetty_types_path")) SWIG_fail;
-+ result = (char *)selinux_securetty_types_path();
-+ resultobj = SWIG_FromCharPtr((const char *)result);
-+ return resultobj;
-+fail:
-+ return NULL;
-+}
-+
-+
- SWIGINTERN PyObject *_wrap_selinux_booleans_path(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
- PyObject *resultobj = 0;
- char *result = 0 ;
-@@ -4085,27 +4577,17 @@ fail:
- }
-
-
--SWIGINTERN PyObject *_wrap_selinux_check_passwd_access(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
-+SWIGINTERN PyObject *_wrap_selinux_check_securetty_context(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
- PyObject *resultobj = 0;
-- access_vector_t arg1 ;
-+ security_context_t arg1 ;
- int result;
-- void *argp1 ;
-- int res1 = 0 ;
- PyObject * obj0 = 0 ;
-
-- if (!PyArg_ParseTuple(args,(char *)"O:selinux_check_passwd_access",&obj0)) SWIG_fail;
-+ if (!PyArg_ParseTuple(args,(char *)"O:selinux_check_securetty_context",&obj0)) SWIG_fail;
- {
-- res1 = SWIG_ConvertPtr(obj0, &argp1, SWIGTYPE_p_access_vector_t, 0 );
-- if (!SWIG_IsOK(res1)) {
-- SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "selinux_check_passwd_access" "', argument " "1"" of type '" "access_vector_t""'");
-- }
-- if (!argp1) {
-- SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "selinux_check_passwd_access" "', argument " "1"" of type '" "access_vector_t""'");
-- } else {
-- arg1 = *((access_vector_t *)(argp1));
-- }
-+ arg1 = (security_context_t)PyString_AsString(obj0);
- }
-- result = (int)selinux_check_passwd_access(arg1);
-+ result = (int)selinux_check_securetty_context(arg1);
- resultobj = SWIG_From_int((int)(result));
- return resultobj;
- fail:
-@@ -4113,30 +4595,26 @@ fail:
- }
-
-
--SWIGINTERN PyObject *_wrap_checkPasswdAccess(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
-+SWIGINTERN PyObject *_wrap_set_selinuxmnt(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
- PyObject *resultobj = 0;
-- access_vector_t arg1 ;
-- int result;
-- void *argp1 ;
-- int res1 = 0 ;
-+ char *arg1 = (char *) 0 ;
-+ int res1 ;
-+ char *buf1 = 0 ;
-+ int alloc1 = 0 ;
- PyObject * obj0 = 0 ;
-
-- if (!PyArg_ParseTuple(args,(char *)"O:checkPasswdAccess",&obj0)) SWIG_fail;
-- {
-- res1 = SWIG_ConvertPtr(obj0, &argp1, SWIGTYPE_p_access_vector_t, 0 );
-- if (!SWIG_IsOK(res1)) {
-- SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "checkPasswdAccess" "', argument " "1"" of type '" "access_vector_t""'");
-- }
-- if (!argp1) {
-- SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "checkPasswdAccess" "', argument " "1"" of type '" "access_vector_t""'");
-- } else {
-- arg1 = *((access_vector_t *)(argp1));
-- }
-+ if (!PyArg_ParseTuple(args,(char *)"O:set_selinuxmnt",&obj0)) SWIG_fail;
-+ res1 = SWIG_AsCharPtrAndSize(obj0, &buf1, NULL, &alloc1);
-+ if (!SWIG_IsOK(res1)) {
-+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "set_selinuxmnt" "', argument " "1"" of type '" "char *""'");
- }
-- result = (int)checkPasswdAccess(arg1);
-- resultobj = SWIG_From_int((int)(result));
-+ arg1 = (char *)(buf1);
-+ set_selinuxmnt(arg1);
-+ resultobj = SWIG_Py_Void();
-+ if (alloc1 == SWIG_NEWOBJ) free((char*)buf1);
- return resultobj;
- fail:
-+ if (alloc1 == SWIG_NEWOBJ) free((char*)buf1);
- return NULL;
- }
-
-@@ -4153,6 +4631,10 @@ SWIGINTERN PyObject *_wrap_rpm_execcon(P
- int res2 ;
- char *buf2 = 0 ;
- int alloc2 = 0 ;
-+ void *argp3 = 0 ;
-+ int res3 = 0 ;
-+ void *argp4 = 0 ;
-+ int res4 = 0 ;
- PyObject * obj0 = 0 ;
- PyObject * obj1 = 0 ;
- PyObject * obj2 = 0 ;
-@@ -4169,58 +4651,16 @@ SWIGINTERN PyObject *_wrap_rpm_execcon(P
- SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "rpm_execcon" "', argument " "2"" of type '" "char const *""'");
- }
- arg2 = (char *)(buf2);
-- {
-- /* Check if is a list */
-- if (PyList_Check(obj2)) {
-- int size = PyList_Size(obj2);
-- int i = 0;
-- arg3 = (char **) malloc((size+1)*sizeof(char *));
-- if (arg3 == NULL) {
-- PyErr_SetString(PyExc_MemoryError,"Out of memory");
-- return NULL;
-- }
-- for (i = 0; i < size; i++) {
-- PyObject *o = PyList_GetItem(obj2,i);
-- if (PyString_Check(o))
-- arg3[i] = PyString_AsString(PyList_GetItem(obj2,i));
-- else {
-- PyErr_SetString(PyExc_TypeError,"list must contain strings");
-- free(arg3);
-- return NULL;
-- }
-- }
-- arg3[i] = 0;
-- } else {
-- PyErr_SetString(PyExc_TypeError,"not a list");
-- return NULL;
-- }
-- }
-- {
-- /* Check if is a list */
-- if (PyList_Check(obj3)) {
-- int size = PyList_Size(obj3);
-- int i = 0;
-- arg4 = (char **) malloc((size+1)*sizeof(char *));
-- if (arg4 == NULL) {
-- PyErr_SetString(PyExc_MemoryError,"Out of memory");
-- return NULL;
-- }
-- for (i = 0; i < size; i++) {
-- PyObject *o = PyList_GetItem(obj3,i);
-- if (PyString_Check(o))
-- arg4[i] = PyString_AsString(PyList_GetItem(obj3,i));
-- else {
-- PyErr_SetString(PyExc_TypeError,"list must contain strings");
-- free(arg4);
-- return NULL;
-- }
-- }
-- arg4[i] = 0;
-- } else {
-- PyErr_SetString(PyExc_TypeError,"not a list");
-- return NULL;
-- }
-+ res3 = SWIG_ConvertPtr(obj2, &argp3,SWIGTYPE_p_p_char, 0 | 0 );
-+ if (!SWIG_IsOK(res3)) {
-+ SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "rpm_execcon" "', argument " "3"" of type '" "char **""'");
-+ }
-+ arg3 = (char **)(argp3);
-+ res4 = SWIG_ConvertPtr(obj3, &argp4,SWIGTYPE_p_p_char, 0 | 0 );
-+ if (!SWIG_IsOK(res4)) {
-+ SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "rpm_execcon" "', argument " "4"" of type '" "char **""'");
- }
-+ arg4 = (char **)(argp4);
- result = (int)rpm_execcon(arg1,(char const *)arg2,arg3,arg4);
- resultobj = SWIG_From_int((int)(result));
- if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
-@@ -4387,9 +4827,101 @@ fail:
- }
-
-
-+SWIGINTERN PyObject *_wrap_selinux_file_context_cmp(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
-+ PyObject *resultobj = 0;
-+ security_context_t arg1 ;
-+ security_context_t arg2 ;
-+ int result;
-+ PyObject * obj0 = 0 ;
-+ PyObject * obj1 = 0 ;
-+
-+ if (!PyArg_ParseTuple(args,(char *)"OO:selinux_file_context_cmp",&obj0,&obj1)) SWIG_fail;
-+ {
-+ arg1 = (security_context_t)PyString_AsString(obj0);
-+ }
-+ {
-+ arg2 = (security_context_t)PyString_AsString(obj1);
-+ }
-+ result = (int)selinux_file_context_cmp(arg1,arg2);
-+ resultobj = SWIG_From_int((int)(result));
-+ return resultobj;
-+fail:
-+ return NULL;
-+}
-+
-+
-+SWIGINTERN PyObject *_wrap_selinux_file_context_verify(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
-+ PyObject *resultobj = 0;
-+ char *arg1 = (char *) 0 ;
-+ mode_t arg2 ;
-+ int result;
-+ int res1 ;
-+ char *buf1 = 0 ;
-+ int alloc1 = 0 ;
-+ unsigned int val2 ;
-+ int ecode2 = 0 ;
-+ PyObject * obj0 = 0 ;
-+ PyObject * obj1 = 0 ;
-+
-+ if (!PyArg_ParseTuple(args,(char *)"OO:selinux_file_context_verify",&obj0,&obj1)) SWIG_fail;
-+ res1 = SWIG_AsCharPtrAndSize(obj0, &buf1, NULL, &alloc1);
-+ if (!SWIG_IsOK(res1)) {
-+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "selinux_file_context_verify" "', argument " "1"" of type '" "char const *""'");
-+ }
-+ arg1 = (char *)(buf1);
-+ ecode2 = SWIG_AsVal_unsigned_SS_int(obj1, &val2);
-+ if (!SWIG_IsOK(ecode2)) {
-+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "selinux_file_context_verify" "', argument " "2"" of type '" "mode_t""'");
-+ }
-+ arg2 = (mode_t)(val2);
-+ result = (int)selinux_file_context_verify((char const *)arg1,arg2);
-+ resultobj = SWIG_From_int((int)(result));
-+ if (alloc1 == SWIG_NEWOBJ) free((char*)buf1);
-+ return resultobj;
-+fail:
-+ if (alloc1 == SWIG_NEWOBJ) free((char*)buf1);
-+ return NULL;
-+}
-+
-+
-+SWIGINTERN PyObject *_wrap_selinux_lsetfilecon_default(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
-+ PyObject *resultobj = 0;
-+ char *arg1 = (char *) 0 ;
-+ int result;
-+ int res1 ;
-+ char *buf1 = 0 ;
-+ int alloc1 = 0 ;
-+ PyObject * obj0 = 0 ;
-+
-+ if (!PyArg_ParseTuple(args,(char *)"O:selinux_lsetfilecon_default",&obj0)) SWIG_fail;
-+ res1 = SWIG_AsCharPtrAndSize(obj0, &buf1, NULL, &alloc1);
-+ if (!SWIG_IsOK(res1)) {
-+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "selinux_lsetfilecon_default" "', argument " "1"" of type '" "char const *""'");
-+ }
-+ arg1 = (char *)(buf1);
-+ result = (int)selinux_lsetfilecon_default((char const *)arg1);
-+ resultobj = SWIG_From_int((int)(result));
-+ if (alloc1 == SWIG_NEWOBJ) free((char*)buf1);
-+ return resultobj;
-+fail:
-+ if (alloc1 == SWIG_NEWOBJ) free((char*)buf1);
-+ return NULL;
-+}
-+
-+
- static PyMethodDef SwigMethods[] = {
-+ { (char *)"get_ordered_context_list", _wrap_get_ordered_context_list, METH_VARARGS, NULL},
-+ { (char *)"get_ordered_context_list_with_level", _wrap_get_ordered_context_list_with_level, METH_VARARGS, NULL},
-+ { (char *)"get_default_context", _wrap_get_default_context, METH_VARARGS, NULL},
-+ { (char *)"get_default_context_with_level", _wrap_get_default_context_with_level, METH_VARARGS, NULL},
-+ { (char *)"get_default_context_with_role", _wrap_get_default_context_with_role, METH_VARARGS, NULL},
-+ { (char *)"get_default_context_with_rolelevel", _wrap_get_default_context_with_rolelevel, METH_VARARGS, NULL},
-+ { (char *)"query_user_context", _wrap_query_user_context, METH_VARARGS, NULL},
-+ { (char *)"manual_user_enter_context", _wrap_manual_user_enter_context, METH_VARARGS, NULL},
- { (char *)"is_selinux_enabled", _wrap_is_selinux_enabled, METH_VARARGS, NULL},
- { (char *)"is_selinux_mls_enabled", _wrap_is_selinux_mls_enabled, METH_VARARGS, NULL},
-+ { (char *)"freecon", _wrap_freecon, METH_VARARGS, NULL},
-+ { (char *)"freeconary", _wrap_freeconary, METH_VARARGS, NULL},
- { (char *)"getcon", _wrap_getcon, METH_VARARGS, NULL},
- { (char *)"setcon", _wrap_setcon, METH_VARARGS, NULL},
- { (char *)"getpidcon", _wrap_getpidcon, METH_VARARGS, NULL},
-@@ -4426,6 +4958,8 @@ static PyMethodDef SwigMethods[] = {
- { (char *)"set_matchpathcon_flags", _wrap_set_matchpathcon_flags, METH_VARARGS, NULL},
- { (char *)"matchpathcon_init", _wrap_matchpathcon_init, METH_VARARGS, NULL},
- { (char *)"matchpathcon", _wrap_matchpathcon, METH_VARARGS, NULL},
-+ { (char *)"matchpathcon_init_prefix", _wrap_matchpathcon_init_prefix, METH_VARARGS, NULL},
-+ { (char *)"matchpathcon_fini", _wrap_matchpathcon_fini, METH_VARARGS, NULL},
- { (char *)"matchmediacon", _wrap_matchmediacon, METH_VARARGS, NULL},
- { (char *)"selinux_getenforcemode", _wrap_selinux_getenforcemode, METH_VARARGS, NULL},
- { (char *)"selinux_policy_root", _wrap_selinux_policy_root, METH_VARARGS, NULL},
-@@ -4440,6 +4974,7 @@ static PyMethodDef SwigMethods[] = {
- { (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},
-+ { (char *)"selinux_securetty_types_path", _wrap_selinux_securetty_types_path, METH_VARARGS, NULL},
- { (char *)"selinux_booleans_path", _wrap_selinux_booleans_path, METH_VARARGS, NULL},
- { (char *)"selinux_customizable_types_path", _wrap_selinux_customizable_types_path, METH_VARARGS, NULL},
- { (char *)"selinux_users_path", _wrap_selinux_users_path, METH_VARARGS, NULL},
-@@ -4447,14 +4982,17 @@ static PyMethodDef SwigMethods[] = {
- { (char *)"selinux_translations_path", _wrap_selinux_translations_path, METH_VARARGS, NULL},
- { (char *)"selinux_netfilter_context_path", _wrap_selinux_netfilter_context_path, METH_VARARGS, NULL},
- { (char *)"selinux_path", _wrap_selinux_path, METH_VARARGS, NULL},
-- { (char *)"selinux_check_passwd_access", _wrap_selinux_check_passwd_access, METH_VARARGS, NULL},
-- { (char *)"checkPasswdAccess", _wrap_checkPasswdAccess, METH_VARARGS, NULL},
-+ { (char *)"selinux_check_securetty_context", _wrap_selinux_check_securetty_context, METH_VARARGS, NULL},
-+ { (char *)"set_selinuxmnt", _wrap_set_selinuxmnt, METH_VARARGS, NULL},
- { (char *)"rpm_execcon", _wrap_rpm_execcon, METH_VARARGS, NULL},
- { (char *)"is_context_customizable", _wrap_is_context_customizable, METH_VARARGS, NULL},
- { (char *)"selinux_trans_to_raw_context", _wrap_selinux_trans_to_raw_context, METH_VARARGS, NULL},
- { (char *)"selinux_raw_to_trans_context", _wrap_selinux_raw_to_trans_context, METH_VARARGS, NULL},
- { (char *)"selinux_getpolicytype", _wrap_selinux_getpolicytype, METH_VARARGS, NULL},
- { (char *)"getseuserbyname", _wrap_getseuserbyname, METH_VARARGS, NULL},
-+ { (char *)"selinux_file_context_cmp", _wrap_selinux_file_context_cmp, METH_VARARGS, NULL},
-+ { (char *)"selinux_file_context_verify", _wrap_selinux_file_context_verify, METH_VARARGS, NULL},
-+ { (char *)"selinux_lsetfilecon_default", _wrap_selinux_lsetfilecon_default, METH_VARARGS, NULL},
- { NULL, NULL, 0, NULL }
- };
-
-@@ -4462,41 +5000,41 @@ static PyMethodDef SwigMethods[] = {
- /* -------- TYPE CONVERSION AND EQUIVALENCE RULES (BEGIN) -------- */
-
- static swig_type_info _swigt__p_SELboolean = {"_p_SELboolean", "SELboolean *", 0, 0, (void*)0, 0};
--static swig_type_info _swigt__p_access_vector_t = {"_p_access_vector_t", "access_vector_t *", 0, 0, (void*)0, 0};
- static swig_type_info _swigt__p_char = {"_p_char", "char *", 0, 0, (void*)0, 0};
- static swig_type_info _swigt__p_int = {"_p_int", "int *", 0, 0, (void*)0, 0};
- static swig_type_info _swigt__p_p_char = {"_p_p_char", "char **", 0, 0, (void*)0, 0};
- static swig_type_info _swigt__p_p_p_char = {"_p_p_p_char", "char ***", 0, 0, (void*)0, 0};
-+static swig_type_info _swigt__p_p_security_context_t = {"_p_p_security_context_t", "security_context_t **", 0, 0, (void*)0, 0};
- static swig_type_info _swigt__p_security_context_t = {"_p_security_context_t", "security_context_t *", 0, 0, (void*)0, 0};
- static swig_type_info _swigt__p_unsigned_int = {"_p_unsigned_int", "unsigned int *|mode_t *", 0, 0, (void*)0, 0};
-
- static swig_type_info *swig_type_initial[] = {
- &_swigt__p_SELboolean,
-- &_swigt__p_access_vector_t,
- &_swigt__p_char,
- &_swigt__p_int,
- &_swigt__p_p_char,
- &_swigt__p_p_p_char,
-+ &_swigt__p_p_security_context_t,
- &_swigt__p_security_context_t,
- &_swigt__p_unsigned_int,
- };
-
- static swig_cast_info _swigc__p_SELboolean[] = { {&_swigt__p_SELboolean, 0, 0, 0},{0, 0, 0, 0}};
--static swig_cast_info _swigc__p_access_vector_t[] = { {&_swigt__p_access_vector_t, 0, 0, 0},{0, 0, 0, 0}};
- static swig_cast_info _swigc__p_char[] = { {&_swigt__p_char, 0, 0, 0},{0, 0, 0, 0}};
- static swig_cast_info _swigc__p_int[] = { {&_swigt__p_int, 0, 0, 0},{0, 0, 0, 0}};
- static swig_cast_info _swigc__p_p_char[] = { {&_swigt__p_p_char, 0, 0, 0},{0, 0, 0, 0}};
- static swig_cast_info _swigc__p_p_p_char[] = { {&_swigt__p_p_p_char, 0, 0, 0},{0, 0, 0, 0}};
-+static swig_cast_info _swigc__p_p_security_context_t[] = { {&_swigt__p_p_security_context_t, 0, 0, 0},{0, 0, 0, 0}};
- static swig_cast_info _swigc__p_security_context_t[] = { {&_swigt__p_security_context_t, 0, 0, 0},{0, 0, 0, 0}};
- static swig_cast_info _swigc__p_unsigned_int[] = { {&_swigt__p_unsigned_int, 0, 0, 0},{0, 0, 0, 0}};
-
- static swig_cast_info *swig_cast_initial[] = {
- _swigc__p_SELboolean,
-- _swigc__p_access_vector_t,
- _swigc__p_char,
- _swigc__p_int,
- _swigc__p_p_char,
- _swigc__p_p_p_char,
-+ _swigc__p_p_security_context_t,
- _swigc__p_security_context_t,
- _swigc__p_unsigned_int,
- };
-@@ -5019,6 +5557,7 @@ SWIGEXPORT void SWIG_init(void) {
- SWIG_InstallConstants(d,swig_const_table);
-
-
-+ SWIG_Python_SetConstant(d, "SELINUX_DEFAULTUSER",SWIG_FromCharPtr("user_u"));
- SWIG_Python_SetConstant(d, "MATCHPATHCON_BASEONLY",SWIG_From_int((int)(1)));
- SWIG_Python_SetConstant(d, "MATCHPATHCON_NOTRANS",SWIG_From_int((int)(2)));
- }
diff -up libselinux-2.0.14/src/selinuxswig.i.rhat libselinux-2.0.14/src/selinuxswig.i
--- libselinux-2.0.14/src/selinuxswig.i.rhat 2007-04-24 10:36:21.000000000 -0400
-+++ libselinux-2.0.14/src/selinuxswig.i 2007-07-11 12:00:41.000000000 -0400
++++ libselinux-2.0.14/src/selinuxswig.i 2007-09-07 09:21:26.000000000 -0400
@@ -21,6 +21,7 @@
%module selinux
%{
@@ -1139,10 +50,10 @@
-extern int checkPasswdAccess(access_vector_t requested);
+#extern int selinux_check_passwd_access(access_vector_t requested);
+#extern int checkPasswdAccess(access_vector_t requested);
-
++
+extern int selinux_check_securetty_context(security_context_t tty_context);
+void set_selinuxmnt(char *mnt);
-+
+
+#ifdef SWIGpython
// This tells SWIG to treat char ** as a special case
-%typemap(python,in) char ** {
@@ -1150,15 +61,59 @@
/* Check if is a list */
if (PyList_Check($input)) {
int size = PyList_Size($input);
-@@ -143,6 +158,7 @@ extern int checkPasswdAccess(access_vect
+@@ -143,10 +158,48 @@ extern int checkPasswdAccess(access_vect
return NULL;
}
}
+#endif
- extern int rpm_execcon(unsigned int verified,
- const char *filename,
-@@ -164,3 +180,7 @@ extern int selinux_raw_to_trans_context(
+-extern int rpm_execcon(unsigned int verified,
+- const char *filename,
+- char **, char **);
++%typemap(in) char * const [] {
++ int i, size;
++ PyObject * s;
++
++ if (!PySequence_Check($input)) {
++ PyErr_SetString(PyExc_ValueError, "Expected a sequence");
++ return NULL;
++ }
++
++ size = PySequence_Size($input);
++
++ $1 = (char**) malloc(size + 1);
++
++ for(i = 0; i < size; i++) {
++ if (!PyString_Check(PySequence_GetItem($input, i))) {
++ PyErr_SetString(PyExc_ValueError, "Sequence must contain only strings");
++ return NULL;
++ }
++ }
++
++ for(i = 0; i < size; i++) {
++ s = PySequence_GetItem($input, i);
++ $1[i] = (char*) malloc(PyString_Size(s) + 1);
++ strcpy($1[i], PyString_AsString(s));
++ }
++ $1[size] = NULL;
++}
++
++%typemap(freearg,match="in") char * const [] {
++ int i = 0;
++ while($1[i]) {
++ free($1[i]);
++ i++;
++ }
++ free($1);
++}
++
++extern int rpm_execcon(unsigned int verified,
++ const char *filename,
++ char *const argv[], char *const envp[]);
+
+ extern int is_context_customizable (security_context_t scontext);
+
+@@ -164,3 +217,7 @@ extern int selinux_raw_to_trans_context(
}
extern int selinux_getpolicytype(char **enforce);
extern int getseuserbyname(const char *linuxuser, char **seuser, char **level);
@@ -1168,7 +123,7 @@
+int selinux_lsetfilecon_default(const char *path);
diff -up libselinux-2.0.14/src/selinux.py.rhat libselinux-2.0.14/src/selinux.py
--- libselinux-2.0.14/src/selinux.py.rhat 2007-04-24 10:36:20.000000000 -0400
-+++ libselinux-2.0.14/src/selinux.py 2007-07-11 12:00:41.000000000 -0400
++++ libselinux-2.0.14/src/selinux.py 2007-09-07 09:17:52.000000000 -0400
@@ -48,8 +48,19 @@ except AttributeError:
del types
@@ -1226,8 +181,8 @@
diff -up libselinux-2.0.14/include/selinux/flask.h.rhat libselinux-2.0.14/include/selinux/flask.h
---- libselinux-2.0.14/include/selinux/flask.h.rhat 2007-07-11 12:02:16.000000000 -0400
-+++ libselinux-2.0.14/include/selinux/flask.h 2007-07-11 12:02:23.000000000 -0400
+--- libselinux-2.0.14/include/selinux/flask.h.rhat 2007-04-24 10:36:21.000000000 -0400
++++ libselinux-2.0.14/include/selinux/flask.h 2007-09-07 09:17:52.000000000 -0400
@@ -64,6 +64,8 @@
#define SECCLASS_PACKET 57
#define SECCLASS_KEY 58
@@ -1238,8 +193,8 @@
/*
* Security identifier indices for initial entities
diff -up libselinux-2.0.14/include/selinux/av_permissions.h.rhat libselinux-2.0.14/include/selinux/av_permissions.h
---- libselinux-2.0.14/include/selinux/av_permissions.h.rhat 2007-07-11 12:02:07.000000000 -0400
-+++ libselinux-2.0.14/include/selinux/av_permissions.h 2007-07-11 12:02:09.000000000 -0400
+--- libselinux-2.0.14/include/selinux/av_permissions.h.rhat 2007-04-24 10:36:21.000000000 -0400
++++ libselinux-2.0.14/include/selinux/av_permissions.h 2007-09-07 09:17:52.000000000 -0400
@@ -290,12 +290,16 @@
#define NODE__RAWIP_RECV 0x00000010UL
#define NODE__RAWIP_SEND 0x00000020UL
@@ -1297,7 +252,7 @@
+#define MEMPROTECT__MMAP_ZERO 0x00000001UL
diff -up libselinux-2.0.14/man/man8/selinux.8.rhat libselinux-2.0.14/man/man8/selinux.8
--- libselinux-2.0.14/man/man8/selinux.8.rhat 2007-04-24 10:36:21.000000000 -0400
-+++ libselinux-2.0.14/man/man8/selinux.8 2007-07-11 12:00:41.000000000 -0400
++++ libselinux-2.0.14/man/man8/selinux.8 2007-09-07 09:17:52.000000000 -0400
@@ -62,14 +62,13 @@ compile-time tunable options and a set o
.B system-config-securitylevel
allows customization of these booleans and tunables.
@@ -1316,7 +271,7 @@
.SH AUTHOR
diff -up libselinux-2.0.14/man/man8/matchpathcon.8.rhat libselinux-2.0.14/man/man8/matchpathcon.8
--- libselinux-2.0.14/man/man8/matchpathcon.8.rhat 2007-04-24 10:36:21.000000000 -0400
-+++ libselinux-2.0.14/man/man8/matchpathcon.8 2007-07-11 12:00:41.000000000 -0400
++++ libselinux-2.0.14/man/man8/matchpathcon.8 2007-09-07 09:17:52.000000000 -0400
@@ -10,16 +10,16 @@ Prints the file path and the default sec
.SH OPTIONS
.B \-n
@@ -1340,7 +295,7 @@
diff -up libselinux-2.0.14/man/man3/avc_compute_create.3.rhat libselinux-2.0.14/man/man3/avc_compute_create.3
--- libselinux-2.0.14/man/man3/avc_compute_create.3.rhat 2007-04-24 10:36:21.000000000 -0400
-+++ libselinux-2.0.14/man/man3/avc_compute_create.3 2007-07-11 12:00:41.000000000 -0400
++++ libselinux-2.0.14/man/man3/avc_compute_create.3 2007-09-07 09:17:52.000000000 -0400
@@ -6,7 +6,7 @@
avc_compute_create \- obtain SELinux label for new object.
.SH "SYNOPSIS"
@@ -1352,7 +307,7 @@
.BI "int avc_compute_create(security_id_t " ssid ", security_id_t " tsid ,
diff -up libselinux-2.0.14/man/man3/getexeccon.3.rhat libselinux-2.0.14/man/man3/getexeccon.3
--- libselinux-2.0.14/man/man3/getexeccon.3.rhat 2007-04-24 10:36:21.000000000 -0400
-+++ libselinux-2.0.14/man/man3/getexeccon.3 2007-07-11 12:00:41.000000000 -0400
++++ libselinux-2.0.14/man/man3/getexeccon.3 2007-09-07 09:17:52.000000000 -0400
@@ -1,16 +1,16 @@
.TH "getexeccon" "3" "1 January 2004" "russell at coker.com.au" "SE Linux API documentation"
.SH "NAME"
@@ -1395,7 +350,7 @@
runs a helper for rpm in an appropriate security context. The
diff -up libselinux-2.0.14/man/man3/getfilecon.3.rhat libselinux-2.0.14/man/man3/getfilecon.3
--- libselinux-2.0.14/man/man3/getfilecon.3.rhat 2007-04-24 10:36:21.000000000 -0400
-+++ libselinux-2.0.14/man/man3/getfilecon.3 2007-07-11 12:00:41.000000000 -0400
++++ libselinux-2.0.14/man/man3/getfilecon.3 2007-09-07 09:17:52.000000000 -0400
@@ -5,9 +5,9 @@ getfilecon, fgetfilecon, lgetfilecon \-
.B #include <selinux/selinux.h>
.sp
@@ -1418,7 +373,7 @@
.SH "RETURN VALUE"
diff -up libselinux-2.0.14/man/man3/selinux_binary_policy_path.3.rhat libselinux-2.0.14/man/man3/selinux_binary_policy_path.3
--- libselinux-2.0.14/man/man3/selinux_binary_policy_path.3.rhat 2007-04-24 10:36:21.000000000 -0400
-+++ libselinux-2.0.14/man/man3/selinux_binary_policy_path.3 2007-07-11 12:00:41.000000000 -0400
++++ libselinux-2.0.14/man/man3/selinux_binary_policy_path.3 2007-09-07 09:17:52.000000000 -0400
@@ -10,27 +10,27 @@ directories and files.
.SH "SYNOPSIS"
.B #include <selinux/selinux.h>
@@ -1460,7 +415,7 @@
diff -up libselinux-2.0.14/man/man3/security_class_to_string.3.rhat libselinux-2.0.14/man/man3/security_class_to_string.3
--- libselinux-2.0.14/man/man3/security_class_to_string.3.rhat 2007-04-24 10:36:21.000000000 -0400
-+++ libselinux-2.0.14/man/man3/security_class_to_string.3 2007-07-11 12:00:41.000000000 -0400
++++ libselinux-2.0.14/man/man3/security_class_to_string.3 2007-09-07 09:17:52.000000000 -0400
@@ -8,7 +8,7 @@ between SELinux class and permission val
.SH "SYNOPSIS"
@@ -1472,7 +427,7 @@
.BI "const char * security_class_to_string(security_class_t " tclass ");"
diff -up libselinux-2.0.14/man/man3/getfscreatecon.3.rhat libselinux-2.0.14/man/man3/getfscreatecon.3
--- libselinux-2.0.14/man/man3/getfscreatecon.3.rhat 2007-04-24 10:36:21.000000000 -0400
-+++ libselinux-2.0.14/man/man3/getfscreatecon.3 2007-07-11 12:00:41.000000000 -0400
++++ libselinux-2.0.14/man/man3/getfscreatecon.3 2007-09-07 09:17:52.000000000 -0400
@@ -6,7 +6,7 @@ getfscreatecon, setfscreatecon \- get or
.B #include <selinux/selinux.h>
.sp
@@ -1498,7 +453,7 @@
save, reset, and restore the fscreate context to avoid unexpected behaviors.
diff -up libselinux-2.0.14/man/man3/freecon.3.rhat libselinux-2.0.14/man/man3/freecon.3
--- libselinux-2.0.14/man/man3/freecon.3.rhat 2007-04-24 10:36:21.000000000 -0400
-+++ libselinux-2.0.14/man/man3/freecon.3 2007-07-11 12:00:41.000000000 -0400
++++ libselinux-2.0.14/man/man3/freecon.3 2007-09-07 09:17:52.000000000 -0400
@@ -5,7 +5,7 @@ freecon, freeconary \- free memory assoc
.B #include <selinux/selinux.h>
.sp
@@ -1510,7 +465,7 @@
.SH "DESCRIPTION"
diff -up libselinux-2.0.14/man/man3/security_getenforce.3.rhat libselinux-2.0.14/man/man3/security_getenforce.3
--- libselinux-2.0.14/man/man3/security_getenforce.3.rhat 2007-04-24 10:36:21.000000000 -0400
-+++ libselinux-2.0.14/man/man3/security_getenforce.3 2007-07-11 12:00:41.000000000 -0400
++++ libselinux-2.0.14/man/man3/security_getenforce.3 2007-09-07 09:17:52.000000000 -0400
@@ -5,7 +5,7 @@ security_getenforce, security_setenforce
.B #include <selinux/selinux.h>
.sp
@@ -1522,7 +477,7 @@
.SH "DESCRIPTION"
diff -up libselinux-2.0.14/man/man3/selinux_getenforcemode.3.rhat libselinux-2.0.14/man/man3/selinux_getenforcemode.3
--- libselinux-2.0.14/man/man3/selinux_getenforcemode.3.rhat 2007-04-24 10:36:21.000000000 -0400
-+++ libselinux-2.0.14/man/man3/selinux_getenforcemode.3 2007-07-11 12:00:41.000000000 -0400
++++ libselinux-2.0.14/man/man3/selinux_getenforcemode.3 2007-09-07 09:17:52.000000000 -0400
@@ -5,13 +5,13 @@ selinux_getenforcemode \- get the enforc
.B #include <selinux/selinux.h>
.sp
@@ -1541,7 +496,7 @@
Sets the value of enforce to -1 if SELinux should be disabled.
diff -up libselinux-2.0.14/man/man3/matchmediacon.3.rhat libselinux-2.0.14/man/man3/matchmediacon.3
--- libselinux-2.0.14/man/man3/matchmediacon.3.rhat 2007-04-24 10:36:21.000000000 -0400
-+++ libselinux-2.0.14/man/man3/matchmediacon.3 2007-07-11 12:00:41.000000000 -0400
++++ libselinux-2.0.14/man/man3/matchmediacon.3 2007-09-07 09:17:52.000000000 -0400
@@ -6,14 +6,14 @@ matchmediacon \- get the default SELinux
.B #include <selinux/selinux.h>
.sp
@@ -1562,7 +517,7 @@
.SH "RETURN VALUE"
diff -up libselinux-2.0.14/man/man3/getseuserbyname.3.rhat libselinux-2.0.14/man/man3/getseuserbyname.3
--- libselinux-2.0.14/man/man3/getseuserbyname.3.rhat 2007-04-24 10:36:21.000000000 -0400
-+++ libselinux-2.0.14/man/man3/getseuserbyname.3 2007-07-11 12:00:41.000000000 -0400
++++ libselinux-2.0.14/man/man3/getseuserbyname.3 2007-09-07 09:17:52.000000000 -0400
@@ -12,7 +12,7 @@ a given Linux username. The SELinux use
then be passed to other libselinux functions such as
get_ordered_context_list_with_level and get_default_context_with_level.
@@ -1574,7 +529,7 @@
using free.
diff -up libselinux-2.0.14/man/man3/is_context_customizable.3.rhat libselinux-2.0.14/man/man3/is_context_customizable.3
--- libselinux-2.0.14/man/man3/is_context_customizable.3.rhat 2007-04-24 10:36:21.000000000 -0400
-+++ libselinux-2.0.14/man/man3/is_context_customizable.3 2007-07-11 12:00:41.000000000 -0400
++++ libselinux-2.0.14/man/man3/is_context_customizable.3 2007-09-07 09:17:52.000000000 -0400
@@ -8,7 +8,7 @@ is_context_customizable \- check whether
.SH "DESCRIPTION"
@@ -1586,7 +541,7 @@
diff -up libselinux-2.0.14/man/man3/security_compute_av.3.rhat libselinux-2.0.14/man/man3/security_compute_av.3
--- libselinux-2.0.14/man/man3/security_compute_av.3.rhat 2007-04-24 10:36:21.000000000 -0400
-+++ libselinux-2.0.14/man/man3/security_compute_av.3 2007-07-11 12:00:41.000000000 -0400
++++ libselinux-2.0.14/man/man3/security_compute_av.3 2007-09-07 09:17:52.000000000 -0400
@@ -6,7 +6,7 @@ the SELinux policy database in the kerne
.SH "SYNOPSIS"
@@ -1598,7 +553,7 @@
.BI "int security_compute_av(security_context_t "scon ", security_context_t "tcon ", security_class_t "tclass ", access_vector_t "requested ", struct av_decision *" avd );
diff -up libselinux-2.0.14/man/man3/setfilecon.3.rhat libselinux-2.0.14/man/man3/setfilecon.3
--- libselinux-2.0.14/man/man3/setfilecon.3.rhat 2007-04-24 10:36:21.000000000 -0400
-+++ libselinux-2.0.14/man/man3/setfilecon.3 2007-07-11 12:00:41.000000000 -0400
++++ libselinux-2.0.14/man/man3/setfilecon.3 2007-09-07 09:17:52.000000000 -0400
@@ -6,9 +6,9 @@ setfilecon, fsetfilecon, lsetfilecon \-
.B #include <selinux/selinux.h>
.sp
@@ -1613,7 +568,7 @@
.SH "DESCRIPTION"
diff -up libselinux-2.0.14/man/man3/matchpathcon.3.rhat libselinux-2.0.14/man/man3/matchpathcon.3
--- libselinux-2.0.14/man/man3/matchpathcon.3.rhat 2007-04-24 10:36:21.000000000 -0400
-+++ libselinux-2.0.14/man/man3/matchpathcon.3 2007-07-11 12:00:41.000000000 -0400
++++ libselinux-2.0.14/man/man3/matchpathcon.3 2007-09-07 09:17:52.000000000 -0400
@@ -6,18 +6,18 @@ matchpathcon \- get the default SELinux
.B #include <selinux/selinux.h>
.sp
@@ -1694,7 +649,7 @@
Returns 0 on success or -1 otherwise.
diff -up libselinux-2.0.14/man/man3/avc_init.3.rhat libselinux-2.0.14/man/man3/avc_init.3
--- libselinux-2.0.14/man/man3/avc_init.3.rhat 2007-04-24 10:36:21.000000000 -0400
-+++ libselinux-2.0.14/man/man3/avc_init.3 2007-07-11 12:00:41.000000000 -0400
++++ libselinux-2.0.14/man/man3/avc_init.3 2007-09-07 09:17:52.000000000 -0400
@@ -6,17 +6,17 @@
avc_init, avc_destroy, avc_reset, avc_cleanup \- userspace SELinux AVC setup and teardown.
.SH "SYNOPSIS"
@@ -1719,7 +674,7 @@
.sp
diff -up libselinux-2.0.14/man/man3/security_load_booleans.3.rhat libselinux-2.0.14/man/man3/security_load_booleans.3
--- libselinux-2.0.14/man/man3/security_load_booleans.3.rhat 2007-04-24 10:36:21.000000000 -0400
-+++ libselinux-2.0.14/man/man3/security_load_booleans.3 2007-07-11 12:00:41.000000000 -0400
++++ libselinux-2.0.14/man/man3/security_load_booleans.3 2007-09-07 09:17:52.000000000 -0400
@@ -7,15 +7,15 @@ security_get_boolean_pending \- routines
.B #include <selinux/selinux.h>
.sp
@@ -1777,7 +732,7 @@
.SH AUTHOR
diff -up libselinux-2.0.14/man/man3/avc_add_callback.3.rhat libselinux-2.0.14/man/man3/avc_add_callback.3
--- libselinux-2.0.14/man/man3/avc_add_callback.3.rhat 2007-04-24 10:36:21.000000000 -0400
-+++ libselinux-2.0.14/man/man3/avc_add_callback.3 2007-07-11 12:00:41.000000000 -0400
++++ libselinux-2.0.14/man/man3/avc_add_callback.3 2007-09-07 09:17:52.000000000 -0400
@@ -6,26 +6,26 @@
avc_add_callback \- additional event notification for SELinux userspace object managers.
.SH "SYNOPSIS"
@@ -1814,7 +769,7 @@
.SH "DESCRIPTION"
diff -up libselinux-2.0.14/man/man3/avc_has_perm.3.rhat libselinux-2.0.14/man/man3/avc_has_perm.3
--- libselinux-2.0.14/man/man3/avc_has_perm.3.rhat 2007-04-24 10:36:21.000000000 -0400
-+++ libselinux-2.0.14/man/man3/avc_has_perm.3 2007-07-11 12:00:41.000000000 -0400
++++ libselinux-2.0.14/man/man3/avc_has_perm.3 2007-09-07 09:17:52.000000000 -0400
@@ -6,7 +6,7 @@
avc_has_perm, avc_has_perm_noaudit, avc_audit, avc_entry_ref_init \- obtain and audit SELinux access decisions.
.SH "SYNOPSIS"
@@ -1851,7 +806,7 @@
.SH "DESCRIPTION"
diff -up libselinux-2.0.14/man/man3/get_ordered_context_list.3.rhat libselinux-2.0.14/man/man3/get_ordered_context_list.3
--- libselinux-2.0.14/man/man3/get_ordered_context_list.3.rhat 2007-04-24 10:36:21.000000000 -0400
-+++ libselinux-2.0.14/man/man3/get_ordered_context_list.3 2007-07-11 12:00:41.000000000 -0400
++++ libselinux-2.0.14/man/man3/get_ordered_context_list.3 2007-09-07 09:17:52.000000000 -0400
@@ -4,7 +4,7 @@ get_ordered_context_list, get_ordered_co
.SH "SYNOPSIS"
@@ -1863,7 +818,7 @@
.BI "int get_ordered_context_list(const char *" user ", security_context_t "fromcon ", security_context_t **" list );
diff -up libselinux-2.0.14/man/man3/getcon.3.rhat libselinux-2.0.14/man/man3/getcon.3
--- libselinux-2.0.14/man/man3/getcon.3.rhat 2007-04-24 10:36:21.000000000 -0400
-+++ libselinux-2.0.14/man/man3/getcon.3 2007-07-11 12:00:41.000000000 -0400
++++ libselinux-2.0.14/man/man3/getcon.3 2007-09-07 09:17:52.000000000 -0400
@@ -1,21 +1,21 @@
.TH "getcon" "3" "1 January 2004" "russell at coker.com.au" "SE Linux API documentation"
.SH "NAME"
@@ -1894,7 +849,7 @@
.SH "DESCRIPTION"
diff -up libselinux-2.0.14/man/man3/avc_cache_stats.3.rhat libselinux-2.0.14/man/man3/avc_cache_stats.3
--- libselinux-2.0.14/man/man3/avc_cache_stats.3.rhat 2007-04-24 10:36:21.000000000 -0400
-+++ libselinux-2.0.14/man/man3/avc_cache_stats.3 2007-07-11 12:00:41.000000000 -0400
++++ libselinux-2.0.14/man/man3/avc_cache_stats.3 2007-09-07 09:17:52.000000000 -0400
@@ -6,7 +6,7 @@
avc_cache_stats, avc_av_stats, avc_sid_stats \- obtain userspace SELinux AVC statistics.
.SH "SYNOPSIS"
@@ -1906,7 +861,7 @@
.BI "void avc_av_stats(void);"
diff -up libselinux-2.0.14/man/man3/avc_context_to_sid.3.rhat libselinux-2.0.14/man/man3/avc_context_to_sid.3
--- libselinux-2.0.14/man/man3/avc_context_to_sid.3.rhat 2007-04-24 10:36:21.000000000 -0400
-+++ libselinux-2.0.14/man/man3/avc_context_to_sid.3 2007-07-11 12:00:41.000000000 -0400
++++ libselinux-2.0.14/man/man3/avc_context_to_sid.3 2007-09-07 09:17:52.000000000 -0400
@@ -6,7 +6,7 @@
avc_context_to_sid, avc_sid_to_context, sidput, sidget, avc_get_initial_sid \- obtain and manipulate SELinux security ID's.
.SH "SYNOPSIS"
@@ -1918,7 +873,7 @@
.BI "int avc_context_to_sid(security_context_t " ctx ", security_id_t *" sid ");"
diff -up libselinux-2.0.14/man/man3/selinux_policy_root.3.rhat libselinux-2.0.14/man/man3/selinux_policy_root.3
--- libselinux-2.0.14/man/man3/selinux_policy_root.3.rhat 2007-04-24 10:36:21.000000000 -0400
-+++ libselinux-2.0.14/man/man3/selinux_policy_root.3 2007-07-11 12:00:41.000000000 -0400
++++ libselinux-2.0.14/man/man3/selinux_policy_root.3 2007-09-07 09:17:52.000000000 -0400
@@ -5,7 +5,7 @@ selinux_policy_root \- return the path o
.B #include <selinux/selinux.h>
.sp
@@ -1930,7 +885,7 @@
.B selinux_policy_root
diff -up libselinux-2.0.14/man/man3/context_new.3.rhat libselinux-2.0.14/man/man3/context_new.3
--- libselinux-2.0.14/man/man3/context_new.3.rhat 2007-04-24 10:36:21.000000000 -0400
-+++ libselinux-2.0.14/man/man3/context_new.3 2007-07-11 12:00:41.000000000 -0400
++++ libselinux-2.0.14/man/man3/context_new.3 2007-09-07 09:17:52.000000000 -0400
@@ -4,27 +4,27 @@ context_new, context_str, context_free,
.SH "SYNOPSIS"
@@ -1972,7 +927,7 @@
.SH "DESCRIPTION"
diff -up libselinux-2.0.14/Makefile.rhat libselinux-2.0.14/Makefile
--- libselinux-2.0.14/Makefile.rhat 2007-04-24 10:36:19.000000000 -0400
-+++ libselinux-2.0.14/Makefile 2007-07-11 12:00:41.000000000 -0400
++++ libselinux-2.0.14/Makefile 2007-09-07 09:17:52.000000000 -0400
@@ -2,6 +2,9 @@ all:
$(MAKE) -C src
$(MAKE) -C utils
Index: libselinux.spec
===================================================================
RCS file: /cvs/extras/rpms/libselinux/F-7/libselinux.spec,v
retrieving revision 1.268
retrieving revision 1.269
diff -u -r1.268 -r1.269
--- libselinux.spec 11 Aug 2007 10:32:35 -0000 1.268
+++ libselinux.spec 7 Sep 2007 13:26:25 -0000 1.269
@@ -2,7 +2,7 @@
Summary: SELinux library and simple utilities
Name: libselinux
Version: 2.0.14
-Release: 5%{?dist}
+Release: 6%{?dist}
License: Public domain (uncopyrighted)
Group: System Environment/Libraries
Source: http://www.nsa.gov/selinux/archives/%{name}-%{version}.tgz
@@ -122,6 +122,9 @@
%{_libdir}/python*/site-packages/selinux.py*
%changelog
+* Thu Sep 6 2007 Dan Walsh <dwalsh at redhat.com> - 2.0.14-6
+- fix swig binding for rpm_execcon
+
* Fri Aug 10 2007 Dan Walsh <dwalsh at redhat.com> - 2.0.14-5
- Move libselinux.so to devel package
More information about the fedora-extras-commits
mailing list