Blob Blame History Raw
diff --exclude-from=exclude -N -u -r nsalibselinux/include/selinux/selinux.h libselinux-2.0.76/include/selinux/selinux.h
--- nsalibselinux/include/selinux/selinux.h	2008-08-28 09:34:24.000000000 -0400
+++ libselinux-2.0.76/include/selinux/selinux.h	2008-12-12 10:06:21.000000000 -0500
@@ -511,6 +511,14 @@
    Caller must free the returned strings via free. */
 extern int getseuserbyname(const char *linuxuser, char **seuser, char **level);
 
+/* Get the SELinux username and level to use for a given Linux username and service. 
+   These values may then be passed into the get_ordered_context_list*
+   and get_default_context* functions to obtain a context for the user.
+   Returns 0 on success or -1 otherwise.
+   Caller must free the returned strings via free. */
+extern int getseuser(const char *username, const char *service, 
+		     char **r_seuser, char **r_level);
+
 /* Compare two file contexts, return 0 if equivalent. */
 int selinux_file_context_cmp(const security_context_t a,
 			     const security_context_t b);
diff --exclude-from=exclude -N -u -r nsalibselinux/man/man8/selinuxconlist.8 libselinux-2.0.76/man/man8/selinuxconlist.8
--- nsalibselinux/man/man8/selinuxconlist.8	1969-12-31 19:00:00.000000000 -0500
+++ libselinux-2.0.76/man/man8/selinuxconlist.8	2008-12-02 09:14:48.000000000 -0500
@@ -0,0 +1,18 @@
+.TH "selinuxconlist" "1" "7 May 2008" "dwalsh@redhat.com" "SELinux Command Line documentation"
+.SH "NAME"
+selinuxconlist \- list all SELinux context reachable for user
+.SH "SYNOPSIS"
+.B selinuxconlist [-l level] user [context]
+
+.SH "DESCRIPTION"
+.B selinuxconlist
+reports the list of context reachable for user from the current context or specified context
+
+.B \-l level
+mcs/mls level
+
+.SH AUTHOR	
+This manual page was written by Dan Walsh <dwalsh@redhat.com>.
+
+.SH "SEE ALSO"
+secon(8), selinuxdefcon(8)
diff --exclude-from=exclude -N -u -r nsalibselinux/man/man8/selinuxdefcon.8 libselinux-2.0.76/man/man8/selinuxdefcon.8
--- nsalibselinux/man/man8/selinuxdefcon.8	1969-12-31 19:00:00.000000000 -0500
+++ libselinux-2.0.76/man/man8/selinuxdefcon.8	2008-12-02 09:14:48.000000000 -0500
@@ -0,0 +1,19 @@
+.TH "selinuxdefcon" "1" "7 May 2008" "dwalsh@redhat.com" "SELinux Command Line documentation"
+.SH "NAME"
+selinuxdefcon \- list default SELinux context for user 
+
+.SH "SYNOPSIS"
+.B selinuxdefcon [-l level] user [fromcon]
+
+.SH "DESCRIPTION"
+.B seconlist
+reports the default context for the specified user from current context or specified context
+
+.B \-l level
+mcs/mls level
+
+.SH AUTHOR	
+This manual page was written by Dan Walsh <dwalsh@redhat.com>.
+
+.SH "SEE ALSO"
+secon(8), selinuxconlist(8)
diff --exclude-from=exclude -N -u -r nsalibselinux/src/callbacks.c libselinux-2.0.76/src/callbacks.c
--- nsalibselinux/src/callbacks.c	2008-08-28 09:34:24.000000000 -0400
+++ libselinux-2.0.76/src/callbacks.c	2008-12-02 09:14:48.000000000 -0500
@@ -16,6 +16,7 @@
 {
 	int rc;
 	va_list ap;
+	if (is_selinux_enabled() == 0) return 0;
 	va_start(ap, fmt);
 	rc = vfprintf(stderr, fmt, ap);
 	va_end(ap);
diff --exclude-from=exclude -N -u -r nsalibselinux/src/matchpathcon.c libselinux-2.0.76/src/matchpathcon.c
--- nsalibselinux/src/matchpathcon.c	2008-08-28 09:34:24.000000000 -0400
+++ libselinux-2.0.76/src/matchpathcon.c	2008-12-02 09:14:48.000000000 -0500
@@ -2,6 +2,7 @@
 #include <string.h>
 #include <errno.h>
 #include <stdio.h>
+#include <syslog.h>
 #include "selinux_internal.h"
 #include "label_internal.h"
 #include "callbacks.h"
@@ -57,7 +58,7 @@
 {
 	va_list ap;
 	va_start(ap, fmt);
-	vfprintf(stderr, fmt, ap);
+	vsyslog(LOG_ERR, fmt, ap);
 	va_end(ap);
 }
 
diff --exclude-from=exclude -N -u -r nsalibselinux/src/selinux.py libselinux-2.0.76/src/selinux.py
--- nsalibselinux/src/selinux.py	2008-08-28 09:34:24.000000000 -0400
+++ libselinux-2.0.76/src/selinux.py	2008-12-12 10:08:01.000000000 -0500
@@ -1,5 +1,5 @@
 # This file was automatically generated by SWIG (http://www.swig.org).
-# Version 1.3.33
+# Version 1.3.36
 #
 # Don't modify this file, modify the SWIG interface instead.
 # This file is compatible with both classic and new-style classes.
@@ -48,6 +48,29 @@
 del types
 
 
+import shutil, os, stat
+
+def restorecon(path, recursive=False):
+    """ Restore SELinux context on a given path """
+    mode = os.stat(path)[stat.ST_MODE]
+    status, context = matchpathcon(path, mode)
+    if status == 0:
+        lsetfilecon(path, context)
+        if recursive:
+            os.path.walk(path, lambda arg, dirname, fnames:
+                             map(restorecon, [os.path.join(dirname, fname)
+                                              for fname in fnames]), None)
+
+def copytree(src, dest):
+    """ An SELinux-friendly shutil.copytree method """
+    shutil.copytree(src, dest)
+    restorecon(dest, recursive=True)
+
+def install(src, dest):
+    """ An SELinux-friendly shutil.move method """
+    shutil.move(src, dest)
+    restorecon(dest, recursive=True)
+
 is_selinux_enabled = _selinux.is_selinux_enabled
 is_selinux_mls_enabled = _selinux.is_selinux_mls_enabled
 getcon = _selinux.getcon
@@ -297,6 +320,7 @@
 selinux_trans_to_raw_context = _selinux.selinux_trans_to_raw_context
 selinux_raw_to_trans_context = _selinux.selinux_raw_to_trans_context
 getseuserbyname = _selinux.getseuserbyname
+getseuser = _selinux.getseuser
 selinux_file_context_cmp = _selinux.selinux_file_context_cmp
 selinux_file_context_verify = _selinux.selinux_file_context_verify
 selinux_lsetfilecon_default = _selinux.selinux_lsetfilecon_default
diff --exclude-from=exclude -N -u -r nsalibselinux/src/selinuxswig_python.i libselinux-2.0.76/src/selinuxswig_python.i
--- nsalibselinux/src/selinuxswig_python.i	2008-08-28 09:34:24.000000000 -0400
+++ libselinux-2.0.76/src/selinuxswig_python.i	2008-12-02 09:14:48.000000000 -0500
@@ -6,6 +6,32 @@
 	#include "selinux/selinux.h"
 %}
 
+%pythoncode %{
+
+import shutil, os, stat
+
+def restorecon(path, recursive=False):
+    """ Restore SELinux context on a given path """
+    mode = os.stat(path)[stat.ST_MODE]
+    status, context = matchpathcon(path, mode)
+    if status == 0:
+        lsetfilecon(path, context)
+        if recursive:
+            os.path.walk(path, lambda arg, dirname, fnames:
+                             map(restorecon, [os.path.join(dirname, fname)
+                                              for fname in fnames]), None)
+
+def copytree(src, dest):
+    """ An SELinux-friendly shutil.copytree method """
+    shutil.copytree(src, dest)
+    restorecon(dest, recursive=True)
+
+def install(src, dest):
+    """ An SELinux-friendly shutil.move method """
+    shutil.move(src, dest)
+    restorecon(dest, recursive=True)
+%}
+
 /* security_get_boolean_names() typemap */
 %typemap(argout) (char ***names, int *len) {
 	PyObject* list = PyList_New(*$2);
diff --exclude-from=exclude -N -u -r nsalibselinux/src/selinuxswig_wrap.c libselinux-2.0.76/src/selinuxswig_wrap.c
--- nsalibselinux/src/selinuxswig_wrap.c	2008-08-28 09:34:24.000000000 -0400
+++ libselinux-2.0.76/src/selinuxswig_wrap.c	2008-12-12 10:08:01.000000000 -0500
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 1.3.33
+ * Version 1.3.36
  * 
  * This file is not intended to be easily readable and contains a number of 
  * coding conventions designed to improve portability and efficiency. Do not make
@@ -52,6 +52,12 @@
 # endif
 #endif
 
+#ifndef SWIG_MSC_UNSUPPRESS_4505
+# if defined(_MSC_VER)
+#   pragma warning(disable : 4505) /* unreferenced local function has been removed */
+# endif 
+#endif
+
 #ifndef SWIGUNUSEDPARM
 # ifdef __cplusplus
 #   define SWIGUNUSEDPARM(p)
@@ -126,7 +132,7 @@
 
 /* This should only be incremented when either the layout of swig_type_info changes,
    or for whatever reason, the runtime changes incompatibly */
-#define SWIG_RUNTIME_VERSION "3"
+#define SWIG_RUNTIME_VERSION "4"
 
 /* define SWIG_TYPE_TABLE_NAME as "SWIG_TYPE_TABLE" */
 #ifdef SWIG_TYPE_TABLE
@@ -161,6 +167,7 @@
 
 /* Flags for pointer conversions */
 #define SWIG_POINTER_DISOWN        0x1
+#define SWIG_CAST_NEW_MEMORY       0x2
 
 /* Flags for new pointer objects */
 #define SWIG_POINTER_OWN           0x1
@@ -301,10 +308,10 @@
 extern "C" {
 #endif
 
-typedef void *(*swig_converter_func)(void *);
+typedef void *(*swig_converter_func)(void *, int *);
 typedef struct swig_type_info *(*swig_dycast_func)(void **);
 
-/* Structure to store inforomation on one type */
+/* Structure to store information on one type */
 typedef struct swig_type_info {
   const char             *name;			/* mangled name of this type */
   const char             *str;			/* human readable name of this type */
@@ -431,8 +438,8 @@
   Cast a pointer up an inheritance hierarchy
 */
 SWIGRUNTIMEINLINE void *
-SWIG_TypeCast(swig_cast_info *ty, void *ptr) {
-  return ((!ty) || (!ty->converter)) ? ptr : (*ty->converter)(ptr);
+SWIG_TypeCast(swig_cast_info *ty, void *ptr, int *newmemory) {
+  return ((!ty) || (!ty->converter)) ? ptr : (*ty->converter)(ptr, newmemory);
 }
 
 /* 
@@ -856,7 +863,7 @@
     Py_DECREF(old_str);
     Py_DECREF(value);
   } else {
-    PyErr_Format(PyExc_RuntimeError, mesg);
+    PyErr_SetString(PyExc_RuntimeError, mesg);
   }
 }
 
@@ -1416,7 +1423,7 @@
 {
   PySwigObject *sobj = (PySwigObject *) v;
   PyObject *next = sobj->next;
-  if (sobj->own) {
+  if (sobj->own == SWIG_POINTER_OWN) {
     swig_type_info *ty = sobj->ty;
     PySwigClientData *data = ty ? (PySwigClientData *) ty->clientdata : 0;
     PyObject *destroy = data ? data->destroy : 0;
@@ -1434,12 +1441,13 @@
 	res = ((*meth)(mself, v));
       }
       Py_XDECREF(res);
-    } else {
-      const char *name = SWIG_TypePrettyName(ty);
+    } 
 #if !defined(SWIG_PYTHON_SILENT_MEMLEAK)
-      printf("swig/python detected a memory leak of type '%s', no destructor found.\n", name);
-#endif
+    else {
+      const char *name = SWIG_TypePrettyName(ty);
+      printf("swig/python detected a memory leak of type '%s', no destructor found.\n", (name ? name : "unknown"));
     }
+#endif
   } 
   Py_XDECREF(next);
   PyObject_DEL(v);
@@ -1944,7 +1952,7 @@
 
 SWIGRUNTIME int
 SWIG_Python_AcquirePtr(PyObject *obj, int own) {
-  if (own) {
+  if (own == SWIG_POINTER_OWN) {
     PySwigObject *sobj = SWIG_Python_GetSwigThis(obj);
     if (sobj) {
       int oldown = sobj->own;
@@ -1965,6 +1973,8 @@
     return SWIG_OK;
   } else {
     PySwigObject *sobj = SWIG_Python_GetSwigThis(obj);
+    if (own)
+      *own = 0;
     while (sobj) {
       void *vptr = sobj->ptr;
       if (ty) {
@@ -1978,7 +1988,15 @@
 	  if (!tc) {
 	    sobj = (PySwigObject *)sobj->next;
 	  } else {
-	    if (ptr) *ptr = SWIG_TypeCast(tc,vptr);
+	    if (ptr) {
+              int newmemory = 0;
+              *ptr = SWIG_TypeCast(tc,vptr,&newmemory);
+              if (newmemory == SWIG_CAST_NEW_MEMORY) {
+                assert(own);
+                if (own)
+                  *own = *own | SWIG_CAST_NEW_MEMORY;
+              }
+            }
 	    break;
 	  }
 	}
@@ -1988,7 +2006,8 @@
       }
     }
     if (sobj) {
-      if (own) *own = sobj->own;
+      if (own)
+        *own = *own | sobj->own;
       if (flags & SWIG_POINTER_DISOWN) {
 	sobj->own = 0;
       }
@@ -2053,8 +2072,13 @@
     }
     if (ty) {
       swig_cast_info *tc = SWIG_TypeCheck(desc,ty);
-      if (!tc) return SWIG_ERROR;
-      *ptr = SWIG_TypeCast(tc,vptr);
+      if (tc) {
+        int newmemory = 0;
+        *ptr = SWIG_TypeCast(tc,vptr,&newmemory);
+        assert(!newmemory); /* newmemory handling not yet implemented */
+      } else {
+        return SWIG_ERROR;
+      }
     } else {
       *ptr = vptr;
     }
@@ -2506,7 +2530,7 @@
 
 #define SWIG_name    "_selinux"
 
-#define SWIGVERSION 0x010333 
+#define SWIGVERSION 0x010336 
 #define SWIG_VERSION SWIGVERSION
 
 
@@ -2910,8 +2934,8 @@
 SWIGINTERN PyObject *_wrap_getcon(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   security_context_t *arg1 = (security_context_t *) 0 ;
-  int result;
   security_context_t temp1 = 0 ;
+  int result;
   
   arg1 = &temp1;
   if (!PyArg_ParseTuple(args,(char *)":getcon")) SWIG_fail;
@@ -2934,8 +2958,8 @@
 SWIGINTERN PyObject *_wrap_getcon_raw(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   security_context_t *arg1 = (security_context_t *) 0 ;
-  int result;
   security_context_t temp1 = 0 ;
+  int result;
   
   arg1 = &temp1;
   if (!PyArg_ParseTuple(args,(char *)":getcon_raw")) SWIG_fail;
@@ -2958,11 +2982,11 @@
 SWIGINTERN PyObject *_wrap_setcon(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   security_context_t arg1 = (security_context_t) 0 ;
-  int result;
   int res1 ;
   char *buf1 = 0 ;
   int alloc1 = 0 ;
   PyObject * obj0 = 0 ;
+  int result;
   
   if (!PyArg_ParseTuple(args,(char *)"O:setcon",&obj0)) SWIG_fail;
   res1 = SWIG_AsCharPtrAndSize(obj0, &buf1, NULL, &alloc1);
@@ -2983,11 +3007,11 @@
 SWIGINTERN PyObject *_wrap_setcon_raw(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   security_context_t arg1 = (security_context_t) 0 ;
-  int result;
   int res1 ;
   char *buf1 = 0 ;
   int alloc1 = 0 ;
   PyObject * obj0 = 0 ;
+  int result;
   
   if (!PyArg_ParseTuple(args,(char *)"O:setcon_raw",&obj0)) SWIG_fail;
   res1 = SWIG_AsCharPtrAndSize(obj0, &buf1, NULL, &alloc1);
@@ -3009,11 +3033,11 @@
   PyObject *resultobj = 0;
   pid_t arg1 ;
   security_context_t *arg2 = (security_context_t *) 0 ;
-  int result;
   unsigned int val1 ;
   int ecode1 = 0 ;
   security_context_t temp2 = 0 ;
   PyObject * obj0 = 0 ;
+  int result;
   
   arg2 = &temp2;
   if (!PyArg_ParseTuple(args,(char *)"O:getpidcon",&obj0)) SWIG_fail;
@@ -3042,11 +3066,11 @@
   PyObject *resultobj = 0;
   pid_t arg1 ;
   security_context_t *arg2 = (security_context_t *) 0 ;
-  int result;
   unsigned int val1 ;
   int ecode1 = 0 ;
   security_context_t temp2 = 0 ;
   PyObject * obj0 = 0 ;
+  int result;
   
   arg2 = &temp2;
   if (!PyArg_ParseTuple(args,(char *)"O:getpidcon_raw",&obj0)) SWIG_fail;
@@ -3074,8 +3098,8 @@
 SWIGINTERN PyObject *_wrap_getprevcon(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   security_context_t *arg1 = (security_context_t *) 0 ;
-  int result;
   security_context_t temp1 = 0 ;
+  int result;
   
   arg1 = &temp1;
   if (!PyArg_ParseTuple(args,(char *)":getprevcon")) SWIG_fail;
@@ -3098,8 +3122,8 @@
 SWIGINTERN PyObject *_wrap_getprevcon_raw(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   security_context_t *arg1 = (security_context_t *) 0 ;
-  int result;
   security_context_t temp1 = 0 ;
+  int result;
   
   arg1 = &temp1;
   if (!PyArg_ParseTuple(args,(char *)":getprevcon_raw")) SWIG_fail;
@@ -3122,8 +3146,8 @@
 SWIGINTERN PyObject *_wrap_getexeccon(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   security_context_t *arg1 = (security_context_t *) 0 ;
-  int result;
   security_context_t temp1 = 0 ;
+  int result;
   
   arg1 = &temp1;
   if (!PyArg_ParseTuple(args,(char *)":getexeccon")) SWIG_fail;
@@ -3146,8 +3170,8 @@
 SWIGINTERN PyObject *_wrap_getexeccon_raw(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   security_context_t *arg1 = (security_context_t *) 0 ;
-  int result;
   security_context_t temp1 = 0 ;
+  int result;
   
   arg1 = &temp1;
   if (!PyArg_ParseTuple(args,(char *)":getexeccon_raw")) SWIG_fail;
@@ -3170,11 +3194,11 @@
 SWIGINTERN PyObject *_wrap_setexeccon(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   security_context_t arg1 = (security_context_t) 0 ;
-  int result;
   int res1 ;
   char *buf1 = 0 ;
   int alloc1 = 0 ;
   PyObject * obj0 = 0 ;
+  int result;
   
   if (!PyArg_ParseTuple(args,(char *)"O:setexeccon",&obj0)) SWIG_fail;
   res1 = SWIG_AsCharPtrAndSize(obj0, &buf1, NULL, &alloc1);
@@ -3195,11 +3219,11 @@
 SWIGINTERN PyObject *_wrap_setexeccon_raw(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   security_context_t arg1 = (security_context_t) 0 ;
-  int result;
   int res1 ;
   char *buf1 = 0 ;
   int alloc1 = 0 ;
   PyObject * obj0 = 0 ;
+  int result;
   
   if (!PyArg_ParseTuple(args,(char *)"O:setexeccon_raw",&obj0)) SWIG_fail;
   res1 = SWIG_AsCharPtrAndSize(obj0, &buf1, NULL, &alloc1);
@@ -3220,8 +3244,8 @@
 SWIGINTERN PyObject *_wrap_getfscreatecon(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   security_context_t *arg1 = (security_context_t *) 0 ;
-  int result;
   security_context_t temp1 = 0 ;
+  int result;
   
   arg1 = &temp1;
   if (!PyArg_ParseTuple(args,(char *)":getfscreatecon")) SWIG_fail;
@@ -3244,8 +3268,8 @@
 SWIGINTERN PyObject *_wrap_getfscreatecon_raw(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   security_context_t *arg1 = (security_context_t *) 0 ;
-  int result;
   security_context_t temp1 = 0 ;
+  int result;
   
   arg1 = &temp1;
   if (!PyArg_ParseTuple(args,(char *)":getfscreatecon_raw")) SWIG_fail;
@@ -3268,11 +3292,11 @@
 SWIGINTERN PyObject *_wrap_setfscreatecon(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   security_context_t arg1 = (security_context_t) 0 ;
-  int result;
   int res1 ;
   char *buf1 = 0 ;
   int alloc1 = 0 ;
   PyObject * obj0 = 0 ;
+  int result;
   
   if (!PyArg_ParseTuple(args,(char *)"O:setfscreatecon",&obj0)) SWIG_fail;
   res1 = SWIG_AsCharPtrAndSize(obj0, &buf1, NULL, &alloc1);
@@ -3293,11 +3317,11 @@
 SWIGINTERN PyObject *_wrap_setfscreatecon_raw(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   security_context_t arg1 = (security_context_t) 0 ;
-  int result;
   int res1 ;
   char *buf1 = 0 ;
   int alloc1 = 0 ;
   PyObject * obj0 = 0 ;
+  int result;
   
   if (!PyArg_ParseTuple(args,(char *)"O:setfscreatecon_raw",&obj0)) SWIG_fail;
   res1 = SWIG_AsCharPtrAndSize(obj0, &buf1, NULL, &alloc1);
@@ -3318,8 +3342,8 @@
 SWIGINTERN PyObject *_wrap_getkeycreatecon(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   security_context_t *arg1 = (security_context_t *) 0 ;
-  int result;
   security_context_t temp1 = 0 ;
+  int result;
   
   arg1 = &temp1;
   if (!PyArg_ParseTuple(args,(char *)":getkeycreatecon")) SWIG_fail;
@@ -3342,8 +3366,8 @@
 SWIGINTERN PyObject *_wrap_getkeycreatecon_raw(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   security_context_t *arg1 = (security_context_t *) 0 ;
-  int result;
   security_context_t temp1 = 0 ;
+  int result;
   
   arg1 = &temp1;
   if (!PyArg_ParseTuple(args,(char *)":getkeycreatecon_raw")) SWIG_fail;
@@ -3366,11 +3390,11 @@
 SWIGINTERN PyObject *_wrap_setkeycreatecon(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   security_context_t arg1 = (security_context_t) 0 ;
-  int result;
   int res1 ;
   char *buf1 = 0 ;
   int alloc1 = 0 ;
   PyObject * obj0 = 0 ;
+  int result;
   
   if (!PyArg_ParseTuple(args,(char *)"O:setkeycreatecon",&obj0)) SWIG_fail;
   res1 = SWIG_AsCharPtrAndSize(obj0, &buf1, NULL, &alloc1);
@@ -3391,11 +3415,11 @@
 SWIGINTERN PyObject *_wrap_setkeycreatecon_raw(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   security_context_t arg1 = (security_context_t) 0 ;
-  int result;
   int res1 ;
   char *buf1 = 0 ;
   int alloc1 = 0 ;
   PyObject * obj0 = 0 ;
+  int result;
   
   if (!PyArg_ParseTuple(args,(char *)"O:setkeycreatecon_raw",&obj0)) SWIG_fail;
   res1 = SWIG_AsCharPtrAndSize(obj0, &buf1, NULL, &alloc1);
@@ -3416,8 +3440,8 @@
 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 = 0 ;
+  int result;
   
   arg1 = &temp1;
   if (!PyArg_ParseTuple(args,(char *)":getsockcreatecon")) SWIG_fail;
@@ -3440,8 +3464,8 @@
 SWIGINTERN PyObject *_wrap_getsockcreatecon_raw(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   security_context_t *arg1 = (security_context_t *) 0 ;
-  int result;
   security_context_t temp1 = 0 ;
+  int result;
   
   arg1 = &temp1;
   if (!PyArg_ParseTuple(args,(char *)":getsockcreatecon_raw")) SWIG_fail;
@@ -3464,11 +3488,11 @@
 SWIGINTERN PyObject *_wrap_setsockcreatecon(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   security_context_t arg1 = (security_context_t) 0 ;
-  int result;
   int res1 ;
   char *buf1 = 0 ;
   int alloc1 = 0 ;
   PyObject * obj0 = 0 ;
+  int result;
   
   if (!PyArg_ParseTuple(args,(char *)"O:setsockcreatecon",&obj0)) SWIG_fail;
   res1 = SWIG_AsCharPtrAndSize(obj0, &buf1, NULL, &alloc1);
@@ -3489,11 +3513,11 @@
 SWIGINTERN PyObject *_wrap_setsockcreatecon_raw(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   security_context_t arg1 = (security_context_t) 0 ;
-  int result;
   int res1 ;
   char *buf1 = 0 ;
   int alloc1 = 0 ;
   PyObject * obj0 = 0 ;
+  int result;
   
   if (!PyArg_ParseTuple(args,(char *)"O:setsockcreatecon_raw",&obj0)) SWIG_fail;
   res1 = SWIG_AsCharPtrAndSize(obj0, &buf1, NULL, &alloc1);
@@ -3515,12 +3539,12 @@
   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 = 0 ;
   PyObject * obj0 = 0 ;
+  int result;
   
   arg2 = &temp2;
   if (!PyArg_ParseTuple(args,(char *)"O:getfilecon",&obj0)) SWIG_fail;
@@ -3551,12 +3575,12 @@
   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 = 0 ;
   PyObject * obj0 = 0 ;
+  int result;
   
   arg2 = &temp2;
   if (!PyArg_ParseTuple(args,(char *)"O:getfilecon_raw",&obj0)) SWIG_fail;
@@ -3587,12 +3611,12 @@
   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 = 0 ;
   PyObject * obj0 = 0 ;
+  int result;
   
   arg2 = &temp2;
   if (!PyArg_ParseTuple(args,(char *)"O:lgetfilecon",&obj0)) SWIG_fail;
@@ -3623,12 +3647,12 @@
   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 = 0 ;
   PyObject * obj0 = 0 ;
+  int result;
   
   arg2 = &temp2;
   if (!PyArg_ParseTuple(args,(char *)"O:lgetfilecon_raw",&obj0)) SWIG_fail;
@@ -3659,11 +3683,11 @@
   PyObject *resultobj = 0;
   int arg1 ;
   security_context_t *arg2 = (security_context_t *) 0 ;
-  int result;
   int val1 ;
   int ecode1 = 0 ;
   security_context_t temp2 = 0 ;
   PyObject * obj0 = 0 ;
+  int result;
   
   arg2 = &temp2;
   if (!PyArg_ParseTuple(args,(char *)"O:fgetfilecon",&obj0)) SWIG_fail;
@@ -3692,11 +3716,11 @@
   PyObject *resultobj = 0;
   int arg1 ;
   security_context_t *arg2 = (security_context_t *) 0 ;
-  int result;
   int val1 ;
   int ecode1 = 0 ;
   security_context_t temp2 = 0 ;
   PyObject * obj0 = 0 ;
+  int result;
   
   arg2 = &temp2;
   if (!PyArg_ParseTuple(args,(char *)"O:fgetfilecon_raw",&obj0)) SWIG_fail;
@@ -3725,7 +3749,6 @@
   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 ;
@@ -3734,6 +3757,7 @@
   int alloc2 = 0 ;
   PyObject * obj0 = 0 ;
   PyObject * obj1 = 0 ;
+  int result;
   
   if (!PyArg_ParseTuple(args,(char *)"OO:setfilecon",&obj0,&obj1)) SWIG_fail;
   res1 = SWIG_AsCharPtrAndSize(obj0, &buf1, NULL, &alloc1);
@@ -3762,7 +3786,6 @@
   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 ;
@@ -3771,6 +3794,7 @@
   int alloc2 = 0 ;
   PyObject * obj0 = 0 ;
   PyObject * obj1 = 0 ;
+  int result;
   
   if (!PyArg_ParseTuple(args,(char *)"OO:setfilecon_raw",&obj0,&obj1)) SWIG_fail;
   res1 = SWIG_AsCharPtrAndSize(obj0, &buf1, NULL, &alloc1);
@@ -3799,7 +3823,6 @@
   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 ;
@@ -3808,6 +3831,7 @@
   int alloc2 = 0 ;
   PyObject * obj0 = 0 ;
   PyObject * obj1 = 0 ;
+  int result;
   
   if (!PyArg_ParseTuple(args,(char *)"OO:lsetfilecon",&obj0,&obj1)) SWIG_fail;
   res1 = SWIG_AsCharPtrAndSize(obj0, &buf1, NULL, &alloc1);
@@ -3836,7 +3860,6 @@
   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 ;
@@ -3845,6 +3868,7 @@
   int alloc2 = 0 ;
   PyObject * obj0 = 0 ;
   PyObject * obj1 = 0 ;
+  int result;
   
   if (!PyArg_ParseTuple(args,(char *)"OO:lsetfilecon_raw",&obj0,&obj1)) SWIG_fail;
   res1 = SWIG_AsCharPtrAndSize(obj0, &buf1, NULL, &alloc1);
@@ -3873,7 +3897,6 @@
   PyObject *resultobj = 0;
   int arg1 ;
   security_context_t arg2 = (security_context_t) 0 ;
-  int result;
   int val1 ;
   int ecode1 = 0 ;
   int res2 ;
@@ -3881,6 +3904,7 @@
   int alloc2 = 0 ;
   PyObject * obj0 = 0 ;
   PyObject * obj1 = 0 ;
+  int result;
   
   if (!PyArg_ParseTuple(args,(char *)"OO:fsetfilecon",&obj0,&obj1)) SWIG_fail;
   ecode1 = SWIG_AsVal_int(obj0, &val1);
@@ -3907,7 +3931,6 @@
   PyObject *resultobj = 0;
   int arg1 ;
   security_context_t arg2 = (security_context_t) 0 ;
-  int result;
   int val1 ;
   int ecode1 = 0 ;
   int res2 ;
@@ -3915,6 +3938,7 @@
   int alloc2 = 0 ;
   PyObject * obj0 = 0 ;
   PyObject * obj1 = 0 ;
+  int result;
   
   if (!PyArg_ParseTuple(args,(char *)"OO:fsetfilecon_raw",&obj0,&obj1)) SWIG_fail;
   ecode1 = SWIG_AsVal_int(obj0, &val1);
@@ -3941,11 +3965,11 @@
   PyObject *resultobj = 0;
   int arg1 ;
   security_context_t *arg2 = (security_context_t *) 0 ;
-  int result;
   int val1 ;
   int ecode1 = 0 ;
   security_context_t temp2 = 0 ;
   PyObject * obj0 = 0 ;
+  int result;
   
   arg2 = &temp2;
   if (!PyArg_ParseTuple(args,(char *)"O:getpeercon",&obj0)) SWIG_fail;
@@ -3974,11 +3998,11 @@
   PyObject *resultobj = 0;
   int arg1 ;
   security_context_t *arg2 = (security_context_t *) 0 ;
-  int result;
   int val1 ;
   int ecode1 = 0 ;
   security_context_t temp2 = 0 ;
   PyObject * obj0 = 0 ;
+  int result;
   
   arg2 = &temp2;
   if (!PyArg_ParseTuple(args,(char *)"O:getpeercon_raw",&obj0)) SWIG_fail;
@@ -4026,7 +4050,6 @@
   } 
   arg2 = (access_vector_t)(val2);
   if (arg1) (arg1)->allowed = arg2;
-  
   resultobj = SWIG_Py_Void();
   return resultobj;
 fail:
@@ -4037,10 +4060,10 @@
 SWIGINTERN PyObject *_wrap_av_decision_allowed_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   struct av_decision *arg1 = (struct av_decision *) 0 ;
-  access_vector_t result;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
+  access_vector_t result;
   
   if (!PyArg_ParseTuple(args,(char *)"O:av_decision_allowed_get",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_av_decision, 0 |  0 );
@@ -4079,7 +4102,6 @@
   } 
   arg2 = (access_vector_t)(val2);
   if (arg1) (arg1)->decided = arg2;
-  
   resultobj = SWIG_Py_Void();
   return resultobj;
 fail:
@@ -4090,10 +4112,10 @@
 SWIGINTERN PyObject *_wrap_av_decision_decided_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   struct av_decision *arg1 = (struct av_decision *) 0 ;
-  access_vector_t result;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
+  access_vector_t result;
   
   if (!PyArg_ParseTuple(args,(char *)"O:av_decision_decided_get",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_av_decision, 0 |  0 );
@@ -4132,7 +4154,6 @@
   } 
   arg2 = (access_vector_t)(val2);
   if (arg1) (arg1)->auditallow = arg2;
-  
   resultobj = SWIG_Py_Void();
   return resultobj;
 fail:
@@ -4143,10 +4164,10 @@
 SWIGINTERN PyObject *_wrap_av_decision_auditallow_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   struct av_decision *arg1 = (struct av_decision *) 0 ;
-  access_vector_t result;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
+  access_vector_t result;
   
   if (!PyArg_ParseTuple(args,(char *)"O:av_decision_auditallow_get",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_av_decision, 0 |  0 );
@@ -4185,7 +4206,6 @@
   } 
   arg2 = (access_vector_t)(val2);
   if (arg1) (arg1)->auditdeny = arg2;
-  
   resultobj = SWIG_Py_Void();
   return resultobj;
 fail:
@@ -4196,10 +4216,10 @@
 SWIGINTERN PyObject *_wrap_av_decision_auditdeny_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   struct av_decision *arg1 = (struct av_decision *) 0 ;
-  access_vector_t result;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
+  access_vector_t result;
   
   if (!PyArg_ParseTuple(args,(char *)"O:av_decision_auditdeny_get",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_av_decision, 0 |  0 );
@@ -4238,7 +4258,6 @@
   } 
   arg2 = (unsigned int)(val2);
   if (arg1) (arg1)->seqno = arg2;
-  
   resultobj = SWIG_Py_Void();
   return resultobj;
 fail:
@@ -4249,10 +4268,10 @@
 SWIGINTERN PyObject *_wrap_av_decision_seqno_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   struct av_decision *arg1 = (struct av_decision *) 0 ;
-  unsigned int result;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
+  unsigned int result;
   
   if (!PyArg_ParseTuple(args,(char *)"O:av_decision_seqno_get",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_av_decision, 0 |  0 );
@@ -4273,7 +4292,7 @@
   struct av_decision *result = 0 ;
   
   if (!PyArg_ParseTuple(args,(char *)":new_av_decision")) SWIG_fail;
-  result = (struct av_decision *)(struct av_decision *) calloc(1, sizeof(struct av_decision));
+  result = (struct av_decision *)calloc(1, sizeof(struct av_decision));
   resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_av_decision, SWIG_POINTER_NEW |  0 );
   return resultobj;
 fail:
@@ -4295,7 +4314,6 @@
   }
   arg1 = (struct av_decision *)(argp1);
   free((char *) arg1);
-  
   resultobj = SWIG_Py_Void();
   return resultobj;
 fail:
@@ -4305,7 +4323,7 @@
 
 SWIGINTERN PyObject *av_decision_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *obj;
-  if (!PyArg_ParseTuple(args,(char*)"O|swigregister", &obj)) return NULL;
+  if (!PyArg_ParseTuple(args,(char*)"O:swigregister", &obj)) return NULL;
   SWIG_TypeNewClientData(SWIGTYPE_p_av_decision, SWIG_NewClientData(obj));
   return SWIG_Py_Void();
 }
@@ -4333,7 +4351,6 @@
   } 
   arg2 = (int)(val2);
   if (arg1) (arg1)->type = arg2;
-  
   resultobj = SWIG_Py_Void();
   return resultobj;
 fail:
@@ -4344,10 +4361,10 @@
 SWIGINTERN PyObject *_wrap_selinux_opt_type_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   struct selinux_opt *arg1 = (struct selinux_opt *) 0 ;
-  int result;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
+  int result;
   
   if (!PyArg_ParseTuple(args,(char *)"O:selinux_opt_type_get",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_selinux_opt, 0 |  0 );
@@ -4404,10 +4421,10 @@
 SWIGINTERN PyObject *_wrap_selinux_opt_value_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   struct selinux_opt *arg1 = (struct selinux_opt *) 0 ;
-  char *result = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
+  char *result = 0 ;
   
   if (!PyArg_ParseTuple(args,(char *)"O:selinux_opt_value_get",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_selinux_opt, 0 |  0 );
@@ -4428,7 +4445,7 @@
   struct selinux_opt *result = 0 ;
   
   if (!PyArg_ParseTuple(args,(char *)":new_selinux_opt")) SWIG_fail;
-  result = (struct selinux_opt *)(struct selinux_opt *) calloc(1, sizeof(struct selinux_opt));
+  result = (struct selinux_opt *)calloc(1, sizeof(struct selinux_opt));
   resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_selinux_opt, SWIG_POINTER_NEW |  0 );
   return resultobj;
 fail:
@@ -4450,7 +4467,6 @@
   }
   arg1 = (struct selinux_opt *)(argp1);
   free((char *) arg1);
-  
   resultobj = SWIG_Py_Void();
   return resultobj;
 fail:
@@ -4460,7 +4476,7 @@
 
 SWIGINTERN PyObject *selinux_opt_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *obj;
-  if (!PyArg_ParseTuple(args,(char*)"O|swigregister", &obj)) return NULL;
+  if (!PyArg_ParseTuple(args,(char*)"O:swigregister", &obj)) return NULL;
   SWIG_TypeNewClientData(SWIGTYPE_p_selinux_opt, SWIG_NewClientData(obj));
   return SWIG_Py_Void();
 }
@@ -4487,7 +4503,6 @@
     }
   }
   if (arg1) (arg1)->func_log = arg2;
-  
   resultobj = SWIG_Py_Void();
   return resultobj;
 fail:
@@ -4498,10 +4513,10 @@
 SWIGINTERN PyObject *_wrap_selinux_callback_func_log_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   union selinux_callback *arg1 = (union selinux_callback *) 0 ;
-  int (*result)(int,char const *,...) = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
+  int (*result)(int,char const *,...) = 0 ;
   
   if (!PyArg_ParseTuple(args,(char *)"O:selinux_callback_func_log_get",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_selinux_callback, 0 |  0 );
@@ -4539,7 +4554,6 @@
     }
   }
   if (arg1) (arg1)->func_audit = arg2;
-  
   resultobj = SWIG_Py_Void();
   return resultobj;
 fail:
@@ -4550,10 +4564,10 @@
 SWIGINTERN PyObject *_wrap_selinux_callback_func_audit_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   union selinux_callback *arg1 = (union selinux_callback *) 0 ;
-  int (*result)(void *,security_class_t,char *,size_t) = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
+  int (*result)(void *,security_class_t,char *,size_t) = 0 ;
   
   if (!PyArg_ParseTuple(args,(char *)"O:selinux_callback_func_audit_get",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_selinux_callback, 0 |  0 );
@@ -4591,7 +4605,6 @@
     }
   }
   if (arg1) (arg1)->func_validate = arg2;
-  
   resultobj = SWIG_Py_Void();
   return resultobj;
 fail:
@@ -4602,10 +4615,10 @@
 SWIGINTERN PyObject *_wrap_selinux_callback_func_validate_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   union selinux_callback *arg1 = (union selinux_callback *) 0 ;
-  int (*result)(security_context_t *) = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
+  int (*result)(security_context_t *) = 0 ;
   
   if (!PyArg_ParseTuple(args,(char *)"O:selinux_callback_func_validate_get",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_selinux_callback, 0 |  0 );
@@ -4626,7 +4639,7 @@
   union selinux_callback *result = 0 ;
   
   if (!PyArg_ParseTuple(args,(char *)":new_selinux_callback")) SWIG_fail;
-  result = (union selinux_callback *)(union selinux_callback *) calloc(1, sizeof(union selinux_callback));
+  result = (union selinux_callback *)calloc(1, sizeof(union selinux_callback));
   resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_selinux_callback, SWIG_POINTER_NEW |  0 );
   return resultobj;
 fail:
@@ -4648,7 +4661,6 @@
   }
   arg1 = (union selinux_callback *)(argp1);
   free((char *) arg1);
-  
   resultobj = SWIG_Py_Void();
   return resultobj;
 fail:
@@ -4658,7 +4670,7 @@
 
 SWIGINTERN PyObject *selinux_callback_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *obj;
-  if (!PyArg_ParseTuple(args,(char*)"O|swigregister", &obj)) return NULL;
+  if (!PyArg_ParseTuple(args,(char*)"O:swigregister", &obj)) return NULL;
   SWIG_TypeNewClientData(SWIGTYPE_p_selinux_callback, SWIG_NewClientData(obj));
   return SWIG_Py_Void();
 }
@@ -4666,10 +4678,10 @@
 SWIGINTERN PyObject *_wrap_selinux_get_callback(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   int arg1 ;
-  union selinux_callback result;
   int val1 ;
   int ecode1 = 0 ;
   PyObject * obj0 = 0 ;
+  union selinux_callback result;
   
   if (!PyArg_ParseTuple(args,(char *)"O:selinux_get_callback",&obj0)) SWIG_fail;
   ecode1 = SWIG_AsVal_int(obj0, &val1);
@@ -4728,7 +4740,6 @@
   security_class_t arg3 ;
   access_vector_t arg4 ;
   struct av_decision *arg5 = (struct av_decision *) 0 ;
-  int result;
   int res1 ;
   char *buf1 = 0 ;
   int alloc1 = 0 ;
@@ -4746,6 +4757,7 @@
   PyObject * obj2 = 0 ;
   PyObject * obj3 = 0 ;
   PyObject * obj4 = 0 ;
+  int result;
   
   if (!PyArg_ParseTuple(args,(char *)"OOOOO:security_compute_av",&obj0,&obj1,&obj2,&obj3,&obj4)) SWIG_fail;
   res1 = SWIG_AsCharPtrAndSize(obj0, &buf1, NULL, &alloc1);
@@ -4792,7 +4804,6 @@
   security_class_t arg3 ;
   access_vector_t arg4 ;
   struct av_decision *arg5 = (struct av_decision *) 0 ;
-  int result;
   int res1 ;
   char *buf1 = 0 ;
   int alloc1 = 0 ;
@@ -4810,6 +4821,7 @@
   PyObject * obj2 = 0 ;
   PyObject * obj3 = 0 ;
   PyObject * obj4 = 0 ;
+  int result;
   
   if (!PyArg_ParseTuple(args,(char *)"OOOOO:security_compute_av_raw",&obj0,&obj1,&obj2,&obj3,&obj4)) SWIG_fail;
   res1 = SWIG_AsCharPtrAndSize(obj0, &buf1, NULL, &alloc1);
@@ -4855,7 +4867,6 @@
   security_context_t arg2 = (security_context_t) 0 ;
   security_class_t arg3 ;
   security_context_t *arg4 = (security_context_t *) 0 ;
-  int result;
   int res1 ;
   char *buf1 = 0 ;
   int alloc1 = 0 ;
@@ -4868,6 +4879,7 @@
   PyObject * obj0 = 0 ;
   PyObject * obj1 = 0 ;
   PyObject * obj2 = 0 ;
+  int result;
   
   arg4 = &temp4;
   if (!PyArg_ParseTuple(args,(char *)"OOO:security_compute_create",&obj0,&obj1,&obj2)) SWIG_fail;
@@ -4912,7 +4924,6 @@
   security_context_t arg2 = (security_context_t) 0 ;
   security_class_t arg3 ;
   security_context_t *arg4 = (security_context_t *) 0 ;
-  int result;
   int res1 ;
   char *buf1 = 0 ;
   int alloc1 = 0 ;
@@ -4925,6 +4936,7 @@
   PyObject * obj0 = 0 ;
   PyObject * obj1 = 0 ;
   PyObject * obj2 = 0 ;
+  int result;
   
   arg4 = &temp4;
   if (!PyArg_ParseTuple(args,(char *)"OOO:security_compute_create_raw",&obj0,&obj1,&obj2)) SWIG_fail;
@@ -4969,7 +4981,6 @@
   security_context_t arg2 = (security_context_t) 0 ;
   security_class_t arg3 ;
   security_context_t *arg4 = (security_context_t *) 0 ;
-  int result;
   int res1 ;
   char *buf1 = 0 ;
   int alloc1 = 0 ;
@@ -4982,6 +4993,7 @@
   PyObject * obj0 = 0 ;
   PyObject * obj1 = 0 ;
   PyObject * obj2 = 0 ;
+  int result;
   
   arg4 = &temp4;
   if (!PyArg_ParseTuple(args,(char *)"OOO:security_compute_relabel",&obj0,&obj1,&obj2)) SWIG_fail;
@@ -5026,7 +5038,6 @@
   security_context_t arg2 = (security_context_t) 0 ;
   security_class_t arg3 ;
   security_context_t *arg4 = (security_context_t *) 0 ;
-  int result;
   int res1 ;
   char *buf1 = 0 ;
   int alloc1 = 0 ;
@@ -5039,6 +5050,7 @@
   PyObject * obj0 = 0 ;
   PyObject * obj1 = 0 ;
   PyObject * obj2 = 0 ;
+  int result;
   
   arg4 = &temp4;
   if (!PyArg_ParseTuple(args,(char *)"OOO:security_compute_relabel_raw",&obj0,&obj1,&obj2)) SWIG_fail;
@@ -5083,7 +5095,6 @@
   security_context_t arg2 = (security_context_t) 0 ;
   security_class_t arg3 ;
   security_context_t *arg4 = (security_context_t *) 0 ;
-  int result;
   int res1 ;
   char *buf1 = 0 ;
   int alloc1 = 0 ;
@@ -5096,6 +5107,7 @@
   PyObject * obj0 = 0 ;
   PyObject * obj1 = 0 ;
   PyObject * obj2 = 0 ;
+  int result;
   
   arg4 = &temp4;
   if (!PyArg_ParseTuple(args,(char *)"OOO:security_compute_member",&obj0,&obj1,&obj2)) SWIG_fail;
@@ -5140,7 +5152,6 @@
   security_context_t arg2 = (security_context_t) 0 ;
   security_class_t arg3 ;
   security_context_t *arg4 = (security_context_t *) 0 ;
-  int result;
   int res1 ;
   char *buf1 = 0 ;
   int alloc1 = 0 ;
@@ -5153,6 +5164,7 @@
   PyObject * obj0 = 0 ;
   PyObject * obj1 = 0 ;
   PyObject * obj2 = 0 ;
+  int result;
   
   arg4 = &temp4;
   if (!PyArg_ParseTuple(args,(char *)"OOO:security_compute_member_raw",&obj0,&obj1,&obj2)) SWIG_fail;
@@ -5196,7 +5208,6 @@
   security_context_t arg1 = (security_context_t) 0 ;
   char *arg2 = (char *) 0 ;
   security_context_t **arg3 = (security_context_t **) 0 ;
-  int result;
   int res1 ;
   char *buf1 = 0 ;
   int alloc1 = 0 ;
@@ -5206,6 +5217,7 @@
   security_context_t *temp3 ;
   PyObject * obj0 = 0 ;
   PyObject * obj1 = 0 ;
+  int result;
   
   {
     arg3 = &temp3;
@@ -5261,7 +5273,6 @@
   security_context_t arg1 = (security_context_t) 0 ;
   char *arg2 = (char *) 0 ;
   security_context_t **arg3 = (security_context_t **) 0 ;
-  int result;
   int res1 ;
   char *buf1 = 0 ;
   int alloc1 = 0 ;
@@ -5271,6 +5282,7 @@
   security_context_t *temp3 ;
   PyObject * obj0 = 0 ;
   PyObject * obj1 = 0 ;
+  int result;
   
   {
     arg3 = &temp3;
@@ -5325,12 +5337,12 @@
   PyObject *resultobj = 0;
   void *arg1 = (void *) 0 ;
   size_t arg2 ;
-  int result;
   int res1 ;
   size_t val2 ;
   int ecode2 = 0 ;
   PyObject * obj0 = 0 ;
   PyObject * obj1 = 0 ;
+  int result;
   
   if (!PyArg_ParseTuple(args,(char *)"OO:security_load_policy",&obj0,&obj1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0,SWIG_as_voidptrptr(&arg1), 0, 0);
@@ -5354,12 +5366,12 @@
   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 = 0 ;
   PyObject * obj0 = 0 ;
+  int result;
   
   arg2 = &temp2;
   if (!PyArg_ParseTuple(args,(char *)"O:security_get_initial_context",&obj0)) SWIG_fail;
@@ -5390,12 +5402,12 @@
   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 = 0 ;
   PyObject * obj0 = 0 ;
+  int result;
   
   arg2 = &temp2;
   if (!PyArg_ParseTuple(args,(char *)"O:security_get_initial_context_raw",&obj0)) SWIG_fail;
@@ -5425,10 +5437,10 @@
 SWIGINTERN PyObject *_wrap_selinux_mkload_policy(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   int arg1 ;
-  int result;
   int val1 ;
   int ecode1 = 0 ;
   PyObject * obj0 = 0 ;
+  int result;
   
   if (!PyArg_ParseTuple(args,(char *)"O:selinux_mkload_policy",&obj0)) SWIG_fail;
   ecode1 = SWIG_AsVal_int(obj0, &val1);
@@ -5447,9 +5459,9 @@
 SWIGINTERN PyObject *_wrap_selinux_init_load_policy(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   int *arg1 = (int *) 0 ;
-  int result;
   int temp1 ;
   int res1 = SWIG_TMPOBJ ;
+  int result;
   
   arg1 = &temp1;
   if (!PyArg_ParseTuple(args,(char *)":selinux_init_load_policy")) SWIG_fail;
@@ -5509,10 +5521,10 @@
 SWIGINTERN PyObject *_wrap_SELboolean_name_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   SELboolean *arg1 = (SELboolean *) 0 ;
-  char *result = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
+  char *result = 0 ;
   
   if (!PyArg_ParseTuple(args,(char *)"O:SELboolean_name_get",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_SELboolean, 0 |  0 );
@@ -5551,7 +5563,6 @@
   } 
   arg2 = (int)(val2);
   if (arg1) (arg1)->value = arg2;
-  
   resultobj = SWIG_Py_Void();
   return resultobj;
 fail:
@@ -5562,10 +5573,10 @@
 SWIGINTERN PyObject *_wrap_SELboolean_value_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   SELboolean *arg1 = (SELboolean *) 0 ;
-  int result;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
+  int result;
   
   if (!PyArg_ParseTuple(args,(char *)"O:SELboolean_value_get",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_SELboolean, 0 |  0 );
@@ -5586,7 +5597,7 @@
   SELboolean *result = 0 ;
   
   if (!PyArg_ParseTuple(args,(char *)":new_SELboolean")) SWIG_fail;
-  result = (SELboolean *)(SELboolean *) calloc(1, sizeof(SELboolean));
+  result = (SELboolean *)calloc(1, sizeof(SELboolean));
   resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_SELboolean, SWIG_POINTER_NEW |  0 );
   return resultobj;
 fail:
@@ -5608,7 +5619,6 @@
   }
   arg1 = (SELboolean *)(argp1);
   free((char *) arg1);
-  
   resultobj = SWIG_Py_Void();
   return resultobj;
 fail:
@@ -5618,7 +5628,7 @@
 
 SWIGINTERN PyObject *SELboolean_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *obj;
-  if (!PyArg_ParseTuple(args,(char*)"O|swigregister", &obj)) return NULL;
+  if (!PyArg_ParseTuple(args,(char*)"O:swigregister", &obj)) return NULL;
   SWIG_TypeNewClientData(SWIGTYPE_p_SELboolean, SWIG_NewClientData(obj));
   return SWIG_Py_Void();
 }
@@ -5628,7 +5638,6 @@
   size_t arg1 ;
   SELboolean *arg2 = (SELboolean *) 0 ;
   int arg3 ;
-  int result;
   size_t val1 ;
   int ecode1 = 0 ;
   void *argp2 = 0 ;
@@ -5638,6 +5647,7 @@
   PyObject * obj0 = 0 ;
   PyObject * obj1 = 0 ;
   PyObject * obj2 = 0 ;
+  int result;
   
   if (!PyArg_ParseTuple(args,(char *)"OOO:security_set_boolean_list",&obj0,&obj1,&obj2)) SWIG_fail;
   ecode1 = SWIG_AsVal_size_t(obj0, &val1);
@@ -5666,11 +5676,11 @@
 SWIGINTERN PyObject *_wrap_security_load_booleans(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 ;
+  int result;
   
   if (!PyArg_ParseTuple(args,(char *)"O:security_load_booleans",&obj0)) SWIG_fail;
   res1 = SWIG_AsCharPtrAndSize(obj0, &buf1, NULL, &alloc1);
@@ -5691,11 +5701,11 @@
 SWIGINTERN PyObject *_wrap_security_check_context(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   security_context_t arg1 = (security_context_t) 0 ;
-  int result;
   int res1 ;
   char *buf1 = 0 ;
   int alloc1 = 0 ;
   PyObject * obj0 = 0 ;
+  int result;
   
   if (!PyArg_ParseTuple(args,(char *)"O:security_check_context",&obj0)) SWIG_fail;
   res1 = SWIG_AsCharPtrAndSize(obj0, &buf1, NULL, &alloc1);
@@ -5716,11 +5726,11 @@
 SWIGINTERN PyObject *_wrap_security_check_context_raw(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   security_context_t arg1 = (security_context_t) 0 ;
-  int result;
   int res1 ;
   char *buf1 = 0 ;
   int alloc1 = 0 ;
   PyObject * obj0 = 0 ;
+  int result;
   
   if (!PyArg_ParseTuple(args,(char *)"O:security_check_context_raw",&obj0)) SWIG_fail;
   res1 = SWIG_AsCharPtrAndSize(obj0, &buf1, NULL, &alloc1);
@@ -5742,12 +5752,12 @@
   PyObject *resultobj = 0;
   security_context_t arg1 = (security_context_t) 0 ;
   security_context_t *arg2 = (security_context_t *) 0 ;
-  int result;
   int res1 ;
   char *buf1 = 0 ;
   int alloc1 = 0 ;
   security_context_t temp2 = 0 ;
   PyObject * obj0 = 0 ;
+  int result;
   
   arg2 = &temp2;
   if (!PyArg_ParseTuple(args,(char *)"O:security_canonicalize_context",&obj0)) SWIG_fail;
@@ -5778,12 +5788,12 @@
   PyObject *resultobj = 0;
   security_context_t arg1 = (security_context_t) 0 ;
   security_context_t *arg2 = (security_context_t *) 0 ;
-  int result;
   int res1 ;
   char *buf1 = 0 ;
   int alloc1 = 0 ;
   security_context_t temp2 = 0 ;
   PyObject * obj0 = 0 ;
+  int result;
   
   arg2 = &temp2;
   if (!PyArg_ParseTuple(args,(char *)"O:security_canonicalize_context_raw",&obj0)) SWIG_fail;
@@ -5826,10 +5836,10 @@
 SWIGINTERN PyObject *_wrap_security_setenforce(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   int arg1 ;
-  int result;
   int val1 ;
   int ecode1 = 0 ;
   PyObject * obj0 = 0 ;
+  int result;
   
   if (!PyArg_ParseTuple(args,(char *)"O:security_setenforce",&obj0)) SWIG_fail;
   ecode1 = SWIG_AsVal_int(obj0, &val1);
@@ -5875,9 +5885,9 @@
   PyObject *resultobj = 0;
   char ***arg1 = (char ***) 0 ;
   int *arg2 = (int *) 0 ;
-  int result;
   char **temp11 ;
   int temp21 ;
+  int result;
   
   {
     arg1 = &temp11;
@@ -5921,11 +5931,11 @@
 SWIGINTERN PyObject *_wrap_security_get_boolean_pending(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 ;
+  int result;
   
   if (!PyArg_ParseTuple(args,(char *)"O:security_get_boolean_pending",&obj0)) SWIG_fail;
   res1 = SWIG_AsCharPtrAndSize(obj0, &buf1, NULL, &alloc1);
@@ -5946,11 +5956,11 @@
 SWIGINTERN PyObject *_wrap_security_get_boolean_active(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 ;
+  int result;
   
   if (!PyArg_ParseTuple(args,(char *)"O:security_get_boolean_active",&obj0)) SWIG_fail;
   res1 = SWIG_AsCharPtrAndSize(obj0, &buf1, NULL, &alloc1);
@@ -5972,7 +5982,6 @@
   PyObject *resultobj = 0;
   char *arg1 = (char *) 0 ;
   int arg2 ;
-  int result;
   int res1 ;
   char *buf1 = 0 ;
   int alloc1 = 0 ;
@@ -5980,6 +5989,7 @@
   int ecode2 = 0 ;
   PyObject * obj0 = 0 ;
   PyObject * obj1 = 0 ;
+  int result;
   
   if (!PyArg_ParseTuple(args,(char *)"OO:security_set_boolean",&obj0,&obj1)) SWIG_fail;
   res1 = SWIG_AsCharPtrAndSize(obj0, &buf1, NULL, &alloc1);
@@ -6056,10 +6066,10 @@
 SWIGINTERN PyObject *_wrap_security_class_mapping_name_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   struct security_class_mapping *arg1 = (struct security_class_mapping *) 0 ;
-  char *result = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
+  char *result = 0 ;
   
   if (!PyArg_ParseTuple(args,(char *)"O:security_class_mapping_name_get",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_security_class_mapping, 0 |  0 );
@@ -6115,10 +6125,10 @@
 SWIGINTERN PyObject *_wrap_security_class_mapping_perms_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   struct security_class_mapping *arg1 = (struct security_class_mapping *) 0 ;
-  char **result = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
+  char **result = 0 ;
   
   if (!PyArg_ParseTuple(args,(char *)"O:security_class_mapping_perms_get",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_security_class_mapping, 0 |  0 );
@@ -6139,7 +6149,7 @@
   struct security_class_mapping *result = 0 ;
   
   if (!PyArg_ParseTuple(args,(char *)":new_security_class_mapping")) SWIG_fail;
-  result = (struct security_class_mapping *)(struct security_class_mapping *) calloc(1, sizeof(struct security_class_mapping));
+  result = (struct security_class_mapping *)calloc(1, sizeof(struct security_class_mapping));
   resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_security_class_mapping, SWIG_POINTER_NEW |  0 );
   return resultobj;
 fail:
@@ -6161,7 +6171,6 @@
   }
   arg1 = (struct security_class_mapping *)(argp1);
   free((char *) arg1);
-  
   resultobj = SWIG_Py_Void();
   return resultobj;
 fail:
@@ -6171,7 +6180,7 @@
 
 SWIGINTERN PyObject *security_class_mapping_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *obj;
-  if (!PyArg_ParseTuple(args,(char*)"O|swigregister", &obj)) return NULL;
+  if (!PyArg_ParseTuple(args,(char*)"O:swigregister", &obj)) return NULL;
   SWIG_TypeNewClientData(SWIGTYPE_p_security_class_mapping, SWIG_NewClientData(obj));
   return SWIG_Py_Void();
 }
@@ -6179,10 +6188,10 @@
 SWIGINTERN PyObject *_wrap_selinux_set_mapping(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   struct security_class_mapping *arg1 = (struct security_class_mapping *) 0 ;
-  int result;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
+  int result;
   
   if (!PyArg_ParseTuple(args,(char *)"O:selinux_set_mapping",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_security_class_mapping, 0 |  0 );
@@ -6201,11 +6210,11 @@
 SWIGINTERN PyObject *_wrap_string_to_security_class(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   char *arg1 = (char *) 0 ;
-  security_class_t result;
   int res1 ;
   char *buf1 = 0 ;
   int alloc1 = 0 ;
   PyObject * obj0 = 0 ;
+  security_class_t result;
   
   if (!PyArg_ParseTuple(args,(char *)"O:string_to_security_class",&obj0)) SWIG_fail;
   res1 = SWIG_AsCharPtrAndSize(obj0, &buf1, NULL, &alloc1);
@@ -6226,10 +6235,10 @@
 SWIGINTERN PyObject *_wrap_security_class_to_string(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   security_class_t arg1 ;
-  char *result = 0 ;
   unsigned short val1 ;
   int ecode1 = 0 ;
   PyObject * obj0 = 0 ;
+  char *result = 0 ;
   
   if (!PyArg_ParseTuple(args,(char *)"O:security_class_to_string",&obj0)) SWIG_fail;
   ecode1 = SWIG_AsVal_unsigned_SS_short(obj0, &val1);
@@ -6249,13 +6258,13 @@
   PyObject *resultobj = 0;
   security_class_t arg1 ;
   access_vector_t arg2 ;
-  char *result = 0 ;
   unsigned short val1 ;
   int ecode1 = 0 ;
   unsigned int val2 ;
   int ecode2 = 0 ;
   PyObject * obj0 = 0 ;
   PyObject * obj1 = 0 ;
+  char *result = 0 ;
   
   if (!PyArg_ParseTuple(args,(char *)"OO:security_av_perm_to_string",&obj0,&obj1)) SWIG_fail;
   ecode1 = SWIG_AsVal_unsigned_SS_short(obj0, &val1);
@@ -6280,7 +6289,6 @@
   PyObject *resultobj = 0;
   security_class_t arg1 ;
   char *arg2 = (char *) 0 ;
-  access_vector_t result;
   unsigned short val1 ;
   int ecode1 = 0 ;
   int res2 ;
@@ -6288,6 +6296,7 @@
   int alloc2 = 0 ;
   PyObject * obj0 = 0 ;
   PyObject * obj1 = 0 ;
+  access_vector_t result;
   
   if (!PyArg_ParseTuple(args,(char *)"OO:string_to_av_perm",&obj0,&obj1)) SWIG_fail;
   ecode1 = SWIG_AsVal_unsigned_SS_short(obj0, &val1);
@@ -6315,7 +6324,6 @@
   security_class_t arg1 ;
   access_vector_t arg2 ;
   char **arg3 = (char **) 0 ;
-  int result;
   unsigned short val1 ;
   int ecode1 = 0 ;
   unsigned int val2 ;
@@ -6323,6 +6331,7 @@
   char *temp3 = 0 ;
   PyObject * obj0 = 0 ;
   PyObject * obj1 = 0 ;
+  int result;
   
   arg3 = &temp3;
   if (!PyArg_ParseTuple(args,(char *)"OO:security_av_string",&obj0,&obj1)) SWIG_fail;
@@ -6406,11 +6415,11 @@
 SWIGINTERN PyObject *_wrap_matchpathcon_init(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 ;
+  int result;
   
   if (!PyArg_ParseTuple(args,(char *)"O:matchpathcon_init",&obj0)) SWIG_fail;
   res1 = SWIG_AsCharPtrAndSize(obj0, &buf1, NULL, &alloc1);
@@ -6432,7 +6441,6 @@
   PyObject *resultobj = 0;
   char *arg1 = (char *) 0 ;
   char *arg2 = (char *) 0 ;
-  int result;
   int res1 ;
   char *buf1 = 0 ;
   int alloc1 = 0 ;
@@ -6441,6 +6449,7 @@
   int alloc2 = 0 ;
   PyObject * obj0 = 0 ;
   PyObject * obj1 = 0 ;
+  int result;
   
   if (!PyArg_ParseTuple(args,(char *)"OO:matchpathcon_init_prefix",&obj0,&obj1)) SWIG_fail;
   res1 = SWIG_AsCharPtrAndSize(obj0, &buf1, NULL, &alloc1);
@@ -6482,7 +6491,6 @@
   char *arg1 = (char *) 0 ;
   mode_t arg2 ;
   security_context_t *arg3 = (security_context_t *) 0 ;
-  int result;
   int res1 ;
   char *buf1 = 0 ;
   int alloc1 = 0 ;
@@ -6491,6 +6499,7 @@
   security_context_t temp3 = 0 ;
   PyObject * obj0 = 0 ;
   PyObject * obj1 = 0 ;
+  int result;
   
   arg3 = &temp3;
   if (!PyArg_ParseTuple(args,(char *)"OO:matchpathcon",&obj0,&obj1)) SWIG_fail;
@@ -6527,7 +6536,6 @@
   char *arg1 = (char *) 0 ;
   mode_t arg2 ;
   security_context_t *arg3 = (security_context_t *) 0 ;
-  int result;
   int res1 ;
   char *buf1 = 0 ;
   int alloc1 = 0 ;
@@ -6536,6 +6544,7 @@
   security_context_t temp3 = 0 ;
   PyObject * obj0 = 0 ;
   PyObject * obj1 = 0 ;
+  int result;
   
   arg3 = &temp3;
   if (!PyArg_ParseTuple(args,(char *)"OO:matchpathcon_index",&obj0,&obj1)) SWIG_fail;
@@ -6572,7 +6581,6 @@
   ino_t arg1 ;
   int arg2 ;
   char *arg3 = (char *) 0 ;
-  int result;
   void *argp1 ;
   int res1 = 0 ;
   int val2 ;
@@ -6583,6 +6591,7 @@
   PyObject * obj0 = 0 ;
   PyObject * obj1 = 0 ;
   PyObject * obj2 = 0 ;
+  int result;
   
   if (!PyArg_ParseTuple(args,(char *)"OOO:matchpathcon_filespec_add",&obj0,&obj1,&obj2)) SWIG_fail;
   {
@@ -6668,12 +6677,12 @@
   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 = 0 ;
   PyObject * obj0 = 0 ;
+  int result;
   
   arg2 = &temp2;
   if (!PyArg_ParseTuple(args,(char *)"O:matchmediacon",&obj0)) SWIG_fail;
@@ -6703,9 +6712,9 @@
 SWIGINTERN PyObject *_wrap_selinux_getenforcemode(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   int *arg1 = (int *) 0 ;
-  int result;
   int temp1 ;
   int res1 = SWIG_TMPOBJ ;
+  int result;
   
   arg1 = &temp1;
   if (!PyArg_ParseTuple(args,(char *)":selinux_getenforcemode")) SWIG_fail;
@@ -6726,8 +6735,8 @@
 SWIGINTERN PyObject *_wrap_selinux_getpolicytype(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   char **arg1 = (char **) 0 ;
-  int result;
   char *temp1 = 0 ;
+  int result;
   
   arg1 = &temp1;
   if (!PyArg_ParseTuple(args,(char *)":selinux_getpolicytype")) SWIG_fail;
@@ -7023,10 +7032,10 @@
 SWIGINTERN PyObject *_wrap_selinux_check_passwd_access(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   access_vector_t arg1 ;
-  int result;
   unsigned int val1 ;
   int ecode1 = 0 ;
   PyObject * obj0 = 0 ;
+  int result;
   
   if (!PyArg_ParseTuple(args,(char *)"O:selinux_check_passwd_access",&obj0)) SWIG_fail;
   ecode1 = SWIG_AsVal_unsigned_SS_int(obj0, &val1);
@@ -7045,10 +7054,10 @@
 SWIGINTERN PyObject *_wrap_checkPasswdAccess(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   access_vector_t arg1 ;
-  int result;
   unsigned int val1 ;
   int ecode1 = 0 ;
   PyObject * obj0 = 0 ;
+  int result;
   
   if (!PyArg_ParseTuple(args,(char *)"O:checkPasswdAccess",&obj0)) SWIG_fail;
   ecode1 = SWIG_AsVal_unsigned_SS_int(obj0, &val1);
@@ -7067,11 +7076,11 @@
 SWIGINTERN PyObject *_wrap_selinux_check_securetty_context(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   security_context_t arg1 = (security_context_t) 0 ;
-  int result;
   int res1 ;
   char *buf1 = 0 ;
   int alloc1 = 0 ;
   PyObject * obj0 = 0 ;
+  int result;
   
   if (!PyArg_ParseTuple(args,(char *)"O:selinux_check_securetty_context",&obj0)) SWIG_fail;
   res1 = SWIG_AsCharPtrAndSize(obj0, &buf1, NULL, &alloc1);
@@ -7119,7 +7128,6 @@
   char *arg2 = (char *) 0 ;
   char **arg3 ;
   char **arg4 ;
-  int result;
   unsigned int val1 ;
   int ecode1 = 0 ;
   int res2 ;
@@ -7129,6 +7137,7 @@
   PyObject * obj1 = 0 ;
   PyObject * obj2 = 0 ;
   PyObject * obj3 = 0 ;
+  int result;
   
   if (!PyArg_ParseTuple(args,(char *)"OOOO:rpm_execcon",&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
   ecode1 = SWIG_AsVal_unsigned_SS_int(obj0, &val1);
@@ -7240,11 +7249,11 @@
 SWIGINTERN PyObject *_wrap_is_context_customizable(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   security_context_t arg1 = (security_context_t) 0 ;
-  int result;
   int res1 ;
   char *buf1 = 0 ;
   int alloc1 = 0 ;
   PyObject * obj0 = 0 ;
+  int result;
   
   if (!PyArg_ParseTuple(args,(char *)"O:is_context_customizable",&obj0)) SWIG_fail;
   res1 = SWIG_AsCharPtrAndSize(obj0, &buf1, NULL, &alloc1);
@@ -7266,12 +7275,12 @@
   PyObject *resultobj = 0;
   security_context_t arg1 = (security_context_t) 0 ;
   security_context_t *arg2 = (security_context_t *) 0 ;
-  int result;
   int res1 ;
   char *buf1 = 0 ;
   int alloc1 = 0 ;
   security_context_t temp2 = 0 ;
   PyObject * obj0 = 0 ;
+  int result;
   
   arg2 = &temp2;
   if (!PyArg_ParseTuple(args,(char *)"O:selinux_trans_to_raw_context",&obj0)) SWIG_fail;
@@ -7302,12 +7311,12 @@
   PyObject *resultobj = 0;
   security_context_t arg1 = (security_context_t) 0 ;
   security_context_t *arg2 = (security_context_t *) 0 ;
-  int result;
   int res1 ;
   char *buf1 = 0 ;
   int alloc1 = 0 ;
   security_context_t temp2 = 0 ;
   PyObject * obj0 = 0 ;
+  int result;
   
   arg2 = &temp2;
   if (!PyArg_ParseTuple(args,(char *)"O:selinux_raw_to_trans_context",&obj0)) SWIG_fail;
@@ -7339,13 +7348,13 @@
   char *arg1 = (char *) 0 ;
   char **arg2 = (char **) 0 ;
   char **arg3 = (char **) 0 ;
-  int result;
   int res1 ;
   char *buf1 = 0 ;
   int alloc1 = 0 ;
   char *temp2 = 0 ;
   char *temp3 = 0 ;
   PyObject * obj0 = 0 ;
+  int result;
   
   arg2 = &temp2;
   arg3 = &temp3;
@@ -7381,11 +7390,69 @@
 }
 
 
+SWIGINTERN PyObject *_wrap_getseuser(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  char *arg1 = (char *) 0 ;
+  char *arg2 = (char *) 0 ;
+  char **arg3 = (char **) 0 ;
+  char **arg4 = (char **) 0 ;
+  int res1 ;
+  char *buf1 = 0 ;
+  int alloc1 = 0 ;
+  int res2 ;
+  char *buf2 = 0 ;
+  int alloc2 = 0 ;
+  char *temp3 = 0 ;
+  char *temp4 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  int result;
+  
+  arg3 = &temp3;
+  arg4 = &temp4;
+  if (!PyArg_ParseTuple(args,(char *)"OO:getseuser",&obj0,&obj1)) SWIG_fail;
+  res1 = SWIG_AsCharPtrAndSize(obj0, &buf1, NULL, &alloc1);
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "getseuser" "', 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 '" "getseuser" "', argument " "2"" of type '" "char const *""'");
+  }
+  arg2 = (char *)(buf2);
+  result = (int)getseuser((char const *)arg1,(char const *)arg2,arg3,arg4);
+  resultobj = SWIG_From_int((int)(result));
+  if (*arg3) {
+    resultobj = SWIG_Python_AppendOutput(resultobj, SWIG_FromCharPtr(*arg3));
+    free(*arg3);
+  }
+  else {
+    Py_INCREF(Py_None);
+    resultobj = SWIG_Python_AppendOutput(resultobj, Py_None);
+  }
+  if (*arg4) {
+    resultobj = SWIG_Python_AppendOutput(resultobj, SWIG_FromCharPtr(*arg4));
+    free(*arg4);
+  }
+  else {
+    Py_INCREF(Py_None);
+    resultobj = SWIG_Python_AppendOutput(resultobj, Py_None);
+  }
+  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_selinux_file_context_cmp(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   security_context_t arg1 = (security_context_t) (security_context_t)0 ;
   security_context_t arg2 = (security_context_t) (security_context_t)0 ;
-  int result;
   int res1 ;
   char *buf1 = 0 ;
   int alloc1 = 0 ;
@@ -7394,6 +7461,7 @@
   int alloc2 = 0 ;
   PyObject * obj0 = 0 ;
   PyObject * obj1 = 0 ;
+  int result;
   
   if (!PyArg_ParseTuple(args,(char *)"OO:selinux_file_context_cmp",&obj0,&obj1)) SWIG_fail;
   res1 = SWIG_AsCharPtrAndSize(obj0, &buf1, NULL, &alloc1);
@@ -7422,7 +7490,6 @@
   PyObject *resultobj = 0;
   char *arg1 = (char *) 0 ;
   mode_t arg2 ;
-  int result;
   int res1 ;
   char *buf1 = 0 ;
   int alloc1 = 0 ;
@@ -7430,6 +7497,7 @@
   int ecode2 = 0 ;
   PyObject * obj0 = 0 ;
   PyObject * obj1 = 0 ;
+  int result;
   
   if (!PyArg_ParseTuple(args,(char *)"OO:selinux_file_context_verify",&obj0,&obj1)) SWIG_fail;
   res1 = SWIG_AsCharPtrAndSize(obj0, &buf1, NULL, &alloc1);
@@ -7455,11 +7523,11 @@
 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 ;
+  int result;
   
   if (!PyArg_ParseTuple(args,(char *)"O:selinux_lsetfilecon_default",&obj0)) SWIG_fail;
   res1 = SWIG_AsCharPtrAndSize(obj0, &buf1, NULL, &alloc1);
@@ -7519,10 +7587,10 @@
 SWIGINTERN PyObject *_wrap_security_id_ctx_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   struct security_id *arg1 = (struct security_id *) 0 ;
-  security_context_t result;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
+  security_context_t result;
   
   if (!PyArg_ParseTuple(args,(char *)"O:security_id_ctx_get",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_security_id, 0 |  0 );
@@ -7561,7 +7629,6 @@
   } 
   arg2 = (unsigned int)(val2);
   if (arg1) (arg1)->refcnt = arg2;
-  
   resultobj = SWIG_Py_Void();
   return resultobj;
 fail:
@@ -7572,10 +7639,10 @@
 SWIGINTERN PyObject *_wrap_security_id_refcnt_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   struct security_id *arg1 = (struct security_id *) 0 ;
-  unsigned int result;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
+  unsigned int result;
   
   if (!PyArg_ParseTuple(args,(char *)"O:security_id_refcnt_get",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_security_id, 0 |  0 );
@@ -7596,7 +7663,7 @@
   struct security_id *result = 0 ;
   
   if (!PyArg_ParseTuple(args,(char *)":new_security_id")) SWIG_fail;
-  result = (struct security_id *)(struct security_id *) calloc(1, sizeof(struct security_id));
+  result = (struct security_id *)calloc(1, sizeof(struct security_id));
   resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_security_id, SWIG_POINTER_NEW |  0 );
   return resultobj;
 fail:
@@ -7618,7 +7685,6 @@
   }
   arg1 = (struct security_id *)(argp1);
   free((char *) arg1);
-  
   resultobj = SWIG_Py_Void();
   return resultobj;
 fail:
@@ -7628,7 +7694,7 @@
 
 SWIGINTERN PyObject *security_id_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *obj;
-  if (!PyArg_ParseTuple(args,(char*)"O|swigregister", &obj)) return NULL;
+  if (!PyArg_ParseTuple(args,(char*)"O:swigregister", &obj)) return NULL;
   SWIG_TypeNewClientData(SWIGTYPE_p_security_id, SWIG_NewClientData(obj));
   return SWIG_Py_Void();
 }
@@ -7637,11 +7703,11 @@
   PyObject *resultobj = 0;
   security_id_t arg1 = (security_id_t) 0 ;
   security_context_t *arg2 = (security_context_t *) 0 ;
-  int result;
   void *argp1 = 0 ;
   int res1 = 0 ;
   security_context_t temp2 = 0 ;
   PyObject * obj0 = 0 ;
+  int result;
   
   arg2 = &temp2;
   if (!PyArg_ParseTuple(args,(char *)"O:avc_sid_to_context",&obj0)) SWIG_fail;
@@ -7670,11 +7736,11 @@
   PyObject *resultobj = 0;
   security_id_t arg1 = (security_id_t) 0 ;
   security_context_t *arg2 = (security_context_t *) 0 ;
-  int result;
   void *argp1 = 0 ;
   int res1 = 0 ;
   security_context_t temp2 = 0 ;
   PyObject * obj0 = 0 ;
+  int result;
   
   arg2 = &temp2;
   if (!PyArg_ParseTuple(args,(char *)"O:avc_sid_to_context_raw",&obj0)) SWIG_fail;
@@ -7703,12 +7769,12 @@
   PyObject *resultobj = 0;
   security_context_t arg1 = (security_context_t) 0 ;
   security_id_t *arg2 = (security_id_t *) 0 ;
-  int result;
   int res1 ;
   char *buf1 = 0 ;
   int alloc1 = 0 ;
   security_id_t temp2 ;
   PyObject * obj0 = 0 ;
+  int result;
   
   {
     arg2 = &temp2;
@@ -7741,12 +7807,12 @@
   PyObject *resultobj = 0;
   security_context_t arg1 = (security_context_t) 0 ;
   security_id_t *arg2 = (security_id_t *) 0 ;
-  int result;
   int res1 ;
   char *buf1 = 0 ;
   int alloc1 = 0 ;
   security_id_t temp2 ;
   PyObject * obj0 = 0 ;
+  int result;
   
   {
     arg2 = &temp2;
@@ -7778,10 +7844,10 @@
 SWIGINTERN PyObject *_wrap_sidget(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   security_id_t arg1 = (security_id_t) 0 ;
-  int result;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
+  int result;
   
   if (!PyArg_ParseTuple(args,(char *)"O:sidget",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_security_id, 0 |  0 );
@@ -7800,10 +7866,10 @@
 SWIGINTERN PyObject *_wrap_sidput(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   security_id_t arg1 = (security_id_t) 0 ;
-  int result;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
+  int result;
   
   if (!PyArg_ParseTuple(args,(char *)"O:sidput",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_security_id, 0 |  0 );
@@ -7823,12 +7889,12 @@
   PyObject *resultobj = 0;
   char *arg1 = (char *) 0 ;
   security_id_t *arg2 = (security_id_t *) 0 ;
-  int result;
   int res1 ;
   char *buf1 = 0 ;
   int alloc1 = 0 ;
   security_id_t temp2 ;
   PyObject * obj0 = 0 ;
+  int result;
   
   {
     arg2 = &temp2;
@@ -7880,7 +7946,6 @@
   }
   arg2 = (struct avc_entry *)(argp2);
   if (arg1) (arg1)->ae = arg2;
-  
   resultobj = SWIG_Py_Void();
   return resultobj;
 fail:
@@ -7891,10 +7956,10 @@
 SWIGINTERN PyObject *_wrap_avc_entry_ref_ae_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   struct avc_entry_ref *arg1 = (struct avc_entry_ref *) 0 ;
-  struct avc_entry *result = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
+  struct avc_entry *result = 0 ;
   
   if (!PyArg_ParseTuple(args,(char *)"O:avc_entry_ref_ae_get",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_avc_entry_ref, 0 |  0 );
@@ -7915,7 +7980,7 @@
   struct avc_entry_ref *result = 0 ;
   
   if (!PyArg_ParseTuple(args,(char *)":new_avc_entry_ref")) SWIG_fail;
-  result = (struct avc_entry_ref *)(struct avc_entry_ref *) calloc(1, sizeof(struct avc_entry_ref));
+  result = (struct avc_entry_ref *)calloc(1, sizeof(struct avc_entry_ref));
   resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_avc_entry_ref, SWIG_POINTER_NEW |  0 );
   return resultobj;
 fail:
@@ -7937,7 +8002,6 @@
   }
   arg1 = (struct avc_entry_ref *)(argp1);
   free((char *) arg1);
-  
   resultobj = SWIG_Py_Void();
   return resultobj;
 fail:
@@ -7947,7 +8011,7 @@
 
 SWIGINTERN PyObject *avc_entry_ref_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *obj;
-  if (!PyArg_ParseTuple(args,(char*)"O|swigregister", &obj)) return NULL;
+  if (!PyArg_ParseTuple(args,(char*)"O:swigregister", &obj)) return NULL;
   SWIG_TypeNewClientData(SWIGTYPE_p_avc_entry_ref, SWIG_NewClientData(obj));
   return SWIG_Py_Void();
 }
@@ -7974,7 +8038,6 @@
     }
   }
   if (arg1) (arg1)->func_malloc = arg2;
-  
   resultobj = SWIG_Py_Void();
   return resultobj;
 fail:
@@ -7985,10 +8048,10 @@
 SWIGINTERN PyObject *_wrap_avc_memory_callback_func_malloc_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   struct avc_memory_callback *arg1 = (struct avc_memory_callback *) 0 ;
-  void *(*result)(size_t) = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
+  void *(*result)(size_t) = 0 ;
   
   if (!PyArg_ParseTuple(args,(char *)"O:avc_memory_callback_func_malloc_get",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_avc_memory_callback, 0 |  0 );
@@ -8026,7 +8089,6 @@
     }
   }
   if (arg1) (arg1)->func_free = arg2;
-  
   resultobj = SWIG_Py_Void();
   return resultobj;
 fail:
@@ -8037,10 +8099,10 @@
 SWIGINTERN PyObject *_wrap_avc_memory_callback_func_free_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   struct avc_memory_callback *arg1 = (struct avc_memory_callback *) 0 ;
-  void (*result)(void *) = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
+  void (*result)(void *) = 0 ;
   
   if (!PyArg_ParseTuple(args,(char *)"O:avc_memory_callback_func_free_get",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_avc_memory_callback, 0 |  0 );
@@ -8061,7 +8123,7 @@
   struct avc_memory_callback *result = 0 ;
   
   if (!PyArg_ParseTuple(args,(char *)":new_avc_memory_callback")) SWIG_fail;
-  result = (struct avc_memory_callback *)(struct avc_memory_callback *) calloc(1, sizeof(struct avc_memory_callback));
+  result = (struct avc_memory_callback *)calloc(1, sizeof(struct avc_memory_callback));
   resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_avc_memory_callback, SWIG_POINTER_NEW |  0 );
   return resultobj;
 fail:
@@ -8083,7 +8145,6 @@
   }
   arg1 = (struct avc_memory_callback *)(argp1);
   free((char *) arg1);
-  
   resultobj = SWIG_Py_Void();
   return resultobj;
 fail:
@@ -8093,7 +8154,7 @@
 
 SWIGINTERN PyObject *avc_memory_callback_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *obj;
-  if (!PyArg_ParseTuple(args,(char*)"O|swigregister", &obj)) return NULL;
+  if (!PyArg_ParseTuple(args,(char*)"O:swigregister", &obj)) return NULL;
   SWIG_TypeNewClientData(SWIGTYPE_p_avc_memory_callback, SWIG_NewClientData(obj));
   return SWIG_Py_Void();
 }
@@ -8120,7 +8181,6 @@
     }
   }
   if (arg1) (arg1)->func_log = arg2;
-  
   resultobj = SWIG_Py_Void();
   return resultobj;
 fail:
@@ -8131,10 +8191,10 @@
 SWIGINTERN PyObject *_wrap_avc_log_callback_func_log_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   struct avc_log_callback *arg1 = (struct avc_log_callback *) 0 ;
-  void (*result)(char const *,...) = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
+  void (*result)(char const *,...) = 0 ;
   
   if (!PyArg_ParseTuple(args,(char *)"O:avc_log_callback_func_log_get",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_avc_log_callback, 0 |  0 );
@@ -8172,7 +8232,6 @@
     }
   }
   if (arg1) (arg1)->func_audit = arg2;
-  
   resultobj = SWIG_Py_Void();
   return resultobj;
 fail:
@@ -8183,10 +8242,10 @@
 SWIGINTERN PyObject *_wrap_avc_log_callback_func_audit_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   struct avc_log_callback *arg1 = (struct avc_log_callback *) 0 ;
-  void (*result)(void *,security_class_t,char *,size_t) = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
+  void (*result)(void *,security_class_t,char *,size_t) = 0 ;
   
   if (!PyArg_ParseTuple(args,(char *)"O:avc_log_callback_func_audit_get",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_avc_log_callback, 0 |  0 );
@@ -8207,7 +8266,7 @@
   struct avc_log_callback *result = 0 ;
   
   if (!PyArg_ParseTuple(args,(char *)":new_avc_log_callback")) SWIG_fail;
-  result = (struct avc_log_callback *)(struct avc_log_callback *) calloc(1, sizeof(struct avc_log_callback));
+  result = (struct avc_log_callback *)calloc(1, sizeof(struct avc_log_callback));
   resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_avc_log_callback, SWIG_POINTER_NEW |  0 );
   return resultobj;
 fail:
@@ -8229,7 +8288,6 @@
   }
   arg1 = (struct avc_log_callback *)(argp1);
   free((char *) arg1);
-  
   resultobj = SWIG_Py_Void();
   return resultobj;
 fail:
@@ -8239,7 +8297,7 @@
 
 SWIGINTERN PyObject *avc_log_callback_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *obj;
-  if (!PyArg_ParseTuple(args,(char*)"O|swigregister", &obj)) return NULL;
+  if (!PyArg_ParseTuple(args,(char*)"O:swigregister", &obj)) return NULL;
   SWIG_TypeNewClientData(SWIGTYPE_p_avc_log_callback, SWIG_NewClientData(obj));
   return SWIG_Py_Void();
 }
@@ -8266,7 +8324,6 @@
     }
   }
   if (arg1) (arg1)->func_create_thread = arg2;
-  
   resultobj = SWIG_Py_Void();
   return resultobj;
 fail:
@@ -8277,10 +8334,10 @@
 SWIGINTERN PyObject *_wrap_avc_thread_callback_func_create_thread_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   struct avc_thread_callback *arg1 = (struct avc_thread_callback *) 0 ;
-  void *(*result)(void (*)(void)) = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
+  void *(*result)(void (*)(void)) = 0 ;
   
   if (!PyArg_ParseTuple(args,(char *)"O:avc_thread_callback_func_create_thread_get",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_avc_thread_callback, 0 |  0 );
@@ -8318,7 +8375,6 @@
     }
   }
   if (arg1) (arg1)->func_stop_thread = arg2;
-  
   resultobj = SWIG_Py_Void();
   return resultobj;
 fail:
@@ -8329,10 +8385,10 @@
 SWIGINTERN PyObject *_wrap_avc_thread_callback_func_stop_thread_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   struct avc_thread_callback *arg1 = (struct avc_thread_callback *) 0 ;
-  void (*result)(void *) = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
+  void (*result)(void *) = 0 ;
   
   if (!PyArg_ParseTuple(args,(char *)"O:avc_thread_callback_func_stop_thread_get",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_avc_thread_callback, 0 |  0 );
@@ -8353,7 +8409,7 @@
   struct avc_thread_callback *result = 0 ;
   
   if (!PyArg_ParseTuple(args,(char *)":new_avc_thread_callback")) SWIG_fail;
-  result = (struct avc_thread_callback *)(struct avc_thread_callback *) calloc(1, sizeof(struct avc_thread_callback));
+  result = (struct avc_thread_callback *)calloc(1, sizeof(struct avc_thread_callback));
   resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_avc_thread_callback, SWIG_POINTER_NEW |  0 );
   return resultobj;
 fail:
@@ -8375,7 +8431,6 @@
   }
   arg1 = (struct avc_thread_callback *)(argp1);
   free((char *) arg1);
-  
   resultobj = SWIG_Py_Void();
   return resultobj;
 fail:
@@ -8385,7 +8440,7 @@
 
 SWIGINTERN PyObject *avc_thread_callback_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *obj;
-  if (!PyArg_ParseTuple(args,(char*)"O|swigregister", &obj)) return NULL;
+  if (!PyArg_ParseTuple(args,(char*)"O:swigregister", &obj)) return NULL;
   SWIG_TypeNewClientData(SWIGTYPE_p_avc_thread_callback, SWIG_NewClientData(obj));
   return SWIG_Py_Void();
 }
@@ -8412,7 +8467,6 @@
     }
   }
   if (arg1) (arg1)->func_alloc_lock = arg2;
-  
   resultobj = SWIG_Py_Void();
   return resultobj;
 fail:
@@ -8423,10 +8477,10 @@
 SWIGINTERN PyObject *_wrap_avc_lock_callback_func_alloc_lock_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   struct avc_lock_callback *arg1 = (struct avc_lock_callback *) 0 ;
-  void *(*result)(void) = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
+  void *(*result)(void) = 0 ;
   
   if (!PyArg_ParseTuple(args,(char *)"O:avc_lock_callback_func_alloc_lock_get",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_avc_lock_callback, 0 |  0 );
@@ -8464,7 +8518,6 @@
     }
   }
   if (arg1) (arg1)->func_get_lock = arg2;
-  
   resultobj = SWIG_Py_Void();
   return resultobj;
 fail:
@@ -8475,10 +8528,10 @@
 SWIGINTERN PyObject *_wrap_avc_lock_callback_func_get_lock_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   struct avc_lock_callback *arg1 = (struct avc_lock_callback *) 0 ;
-  void (*result)(void *) = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
+  void (*result)(void *) = 0 ;
   
   if (!PyArg_ParseTuple(args,(char *)"O:avc_lock_callback_func_get_lock_get",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_avc_lock_callback, 0 |  0 );
@@ -8516,7 +8569,6 @@
     }
   }
   if (arg1) (arg1)->func_release_lock = arg2;
-  
   resultobj = SWIG_Py_Void();
   return resultobj;
 fail:
@@ -8527,10 +8579,10 @@
 SWIGINTERN PyObject *_wrap_avc_lock_callback_func_release_lock_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   struct avc_lock_callback *arg1 = (struct avc_lock_callback *) 0 ;
-  void (*result)(void *) = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
+  void (*result)(void *) = 0 ;
   
   if (!PyArg_ParseTuple(args,(char *)"O:avc_lock_callback_func_release_lock_get",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_avc_lock_callback, 0 |  0 );
@@ -8568,7 +8620,6 @@
     }
   }
   if (arg1) (arg1)->func_free_lock = arg2;
-  
   resultobj = SWIG_Py_Void();
   return resultobj;
 fail:
@@ -8579,10 +8630,10 @@
 SWIGINTERN PyObject *_wrap_avc_lock_callback_func_free_lock_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   struct avc_lock_callback *arg1 = (struct avc_lock_callback *) 0 ;
-  void (*result)(void *) = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
+  void (*result)(void *) = 0 ;
   
   if (!PyArg_ParseTuple(args,(char *)"O:avc_lock_callback_func_free_lock_get",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_avc_lock_callback, 0 |  0 );
@@ -8603,7 +8654,7 @@
   struct avc_lock_callback *result = 0 ;
   
   if (!PyArg_ParseTuple(args,(char *)":new_avc_lock_callback")) SWIG_fail;
-  result = (struct avc_lock_callback *)(struct avc_lock_callback *) calloc(1, sizeof(struct avc_lock_callback));
+  result = (struct avc_lock_callback *)calloc(1, sizeof(struct avc_lock_callback));
   resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_avc_lock_callback, SWIG_POINTER_NEW |  0 );
   return resultobj;
 fail:
@@ -8625,7 +8676,6 @@
   }
   arg1 = (struct avc_lock_callback *)(argp1);
   free((char *) arg1);
-  
   resultobj = SWIG_Py_Void();
   return resultobj;
 fail:
@@ -8635,7 +8685,7 @@
 
 SWIGINTERN PyObject *avc_lock_callback_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *obj;
-  if (!PyArg_ParseTuple(args,(char*)"O|swigregister", &obj)) return NULL;
+  if (!PyArg_ParseTuple(args,(char*)"O:swigregister", &obj)) return NULL;
   SWIG_TypeNewClientData(SWIGTYPE_p_avc_lock_callback, SWIG_NewClientData(obj));
   return SWIG_Py_Void();
 }
@@ -8647,7 +8697,6 @@
   struct avc_log_callback *arg3 = (struct avc_log_callback *) 0 ;
   struct avc_thread_callback *arg4 = (struct avc_thread_callback *) 0 ;
   struct avc_lock_callback *arg5 = (struct avc_lock_callback *) 0 ;
-  int result;
   int res1 ;
   char *buf1 = 0 ;
   int alloc1 = 0 ;
@@ -8664,6 +8713,7 @@
   PyObject * obj2 = 0 ;
   PyObject * obj3 = 0 ;
   PyObject * obj4 = 0 ;
+  int result;
   
   if (!PyArg_ParseTuple(args,(char *)"OOOOO:avc_init",&obj0,&obj1,&obj2,&obj3,&obj4)) SWIG_fail;
   res1 = SWIG_AsCharPtrAndSize(obj0, &buf1, NULL, &alloc1);
@@ -8705,13 +8755,13 @@
   PyObject *resultobj = 0;
   struct selinux_opt *arg1 = (struct selinux_opt *) 0 ;
   unsigned int arg2 ;
-  int result;
   void *argp1 = 0 ;
   int res1 = 0 ;
   unsigned int val2 ;
   int ecode2 = 0 ;
   PyObject * obj0 = 0 ;
   PyObject * obj1 = 0 ;
+  int result;
   
   if (!PyArg_ParseTuple(args,(char *)"OO:avc_open",&obj0,&obj1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_selinux_opt, 0 |  0 );
@@ -8777,7 +8827,6 @@
   access_vector_t arg4 ;
   struct avc_entry_ref *arg5 = (struct avc_entry_ref *) 0 ;
   struct av_decision *arg6 = (struct av_decision *) 0 ;
-  int result;
   void *argp1 = 0 ;
   int res1 = 0 ;
   void *argp2 = 0 ;
@@ -8796,6 +8845,7 @@
   PyObject * obj3 = 0 ;
   PyObject * obj4 = 0 ;
   PyObject * obj5 = 0 ;
+  int result;
   
   if (!PyArg_ParseTuple(args,(char *)"OOOOOO:avc_has_perm_noaudit",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_security_id, 0 |  0 );
@@ -8844,7 +8894,6 @@
   access_vector_t arg4 ;
   struct avc_entry_ref *arg5 = (struct avc_entry_ref *) 0 ;
   void *arg6 = (void *) 0 ;
-  int result;
   void *argp1 = 0 ;
   int res1 = 0 ;
   void *argp2 = 0 ;
@@ -8862,6 +8911,7 @@
   PyObject * obj3 = 0 ;
   PyObject * obj4 = 0 ;
   PyObject * obj5 = 0 ;
+  int result;
   
   if (!PyArg_ParseTuple(args,(char *)"OOOOOO:avc_has_perm",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_security_id, 0 |  0 );
@@ -8980,7 +9030,6 @@
   security_id_t arg2 = (security_id_t) 0 ;
   security_class_t arg3 ;
   security_id_t *arg4 = (security_id_t *) 0 ;
-  int result;
   void *argp1 = 0 ;
   int res1 = 0 ;
   void *argp2 = 0 ;
@@ -8991,6 +9040,7 @@
   PyObject * obj0 = 0 ;
   PyObject * obj1 = 0 ;
   PyObject * obj2 = 0 ;
+  int result;
   
   {
     arg4 = &temp4;
@@ -9025,7 +9075,6 @@
   security_id_t arg2 = (security_id_t) 0 ;
   security_class_t arg3 ;
   security_id_t *arg4 = (security_id_t *) 0 ;
-  int result;
   void *argp1 = 0 ;
   int res1 = 0 ;
   void *argp2 = 0 ;
@@ -9036,6 +9085,7 @@
   PyObject * obj0 = 0 ;
   PyObject * obj1 = 0 ;
   PyObject * obj2 = 0 ;
+  int result;
   
   {
     arg4 = &temp4;
@@ -9087,7 +9137,6 @@
   } 
   arg2 = (unsigned int)(val2);
   if (arg1) (arg1)->entry_lookups = arg2;
-  
   resultobj = SWIG_Py_Void();
   return resultobj;
 fail:
@@ -9098,10 +9147,10 @@
 SWIGINTERN PyObject *_wrap_avc_cache_stats_entry_lookups_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   struct avc_cache_stats *arg1 = (struct avc_cache_stats *) 0 ;
-  unsigned int result;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
+  unsigned int result;
   
   if (!PyArg_ParseTuple(args,(char *)"O:avc_cache_stats_entry_lookups_get",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_avc_cache_stats, 0 |  0 );
@@ -9140,7 +9189,6 @@
   } 
   arg2 = (unsigned int)(val2);
   if (arg1) (arg1)->entry_hits = arg2;
-  
   resultobj = SWIG_Py_Void();
   return resultobj;
 fail:
@@ -9151,10 +9199,10 @@
 SWIGINTERN PyObject *_wrap_avc_cache_stats_entry_hits_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   struct avc_cache_stats *arg1 = (struct avc_cache_stats *) 0 ;
-  unsigned int result;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
+  unsigned int result;
   
   if (!PyArg_ParseTuple(args,(char *)"O:avc_cache_stats_entry_hits_get",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_avc_cache_stats, 0 |  0 );
@@ -9193,7 +9241,6 @@
   } 
   arg2 = (unsigned int)(val2);
   if (arg1) (arg1)->entry_misses = arg2;
-  
   resultobj = SWIG_Py_Void();
   return resultobj;
 fail:
@@ -9204,10 +9251,10 @@
 SWIGINTERN PyObject *_wrap_avc_cache_stats_entry_misses_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   struct avc_cache_stats *arg1 = (struct avc_cache_stats *) 0 ;
-  unsigned int result;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
+  unsigned int result;
   
   if (!PyArg_ParseTuple(args,(char *)"O:avc_cache_stats_entry_misses_get",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_avc_cache_stats, 0 |  0 );
@@ -9246,7 +9293,6 @@
   } 
   arg2 = (unsigned int)(val2);
   if (arg1) (arg1)->entry_discards = arg2;
-  
   resultobj = SWIG_Py_Void();
   return resultobj;
 fail:
@@ -9257,10 +9303,10 @@
 SWIGINTERN PyObject *_wrap_avc_cache_stats_entry_discards_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   struct avc_cache_stats *arg1 = (struct avc_cache_stats *) 0 ;
-  unsigned int result;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
+  unsigned int result;
   
   if (!PyArg_ParseTuple(args,(char *)"O:avc_cache_stats_entry_discards_get",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_avc_cache_stats, 0 |  0 );
@@ -9299,7 +9345,6 @@
   } 
   arg2 = (unsigned int)(val2);
   if (arg1) (arg1)->cav_lookups = arg2;
-  
   resultobj = SWIG_Py_Void();
   return resultobj;
 fail:
@@ -9310,10 +9355,10 @@
 SWIGINTERN PyObject *_wrap_avc_cache_stats_cav_lookups_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   struct avc_cache_stats *arg1 = (struct avc_cache_stats *) 0 ;
-  unsigned int result;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
+  unsigned int result;
   
   if (!PyArg_ParseTuple(args,(char *)"O:avc_cache_stats_cav_lookups_get",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_avc_cache_stats, 0 |  0 );
@@ -9352,7 +9397,6 @@
   } 
   arg2 = (unsigned int)(val2);
   if (arg1) (arg1)->cav_hits = arg2;
-  
   resultobj = SWIG_Py_Void();
   return resultobj;
 fail:
@@ -9363,10 +9407,10 @@
 SWIGINTERN PyObject *_wrap_avc_cache_stats_cav_hits_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   struct avc_cache_stats *arg1 = (struct avc_cache_stats *) 0 ;
-  unsigned int result;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
+  unsigned int result;
   
   if (!PyArg_ParseTuple(args,(char *)"O:avc_cache_stats_cav_hits_get",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_avc_cache_stats, 0 |  0 );
@@ -9405,7 +9449,6 @@
   } 
   arg2 = (unsigned int)(val2);
   if (arg1) (arg1)->cav_probes = arg2;
-  
   resultobj = SWIG_Py_Void();
   return resultobj;
 fail:
@@ -9416,10 +9459,10 @@
 SWIGINTERN PyObject *_wrap_avc_cache_stats_cav_probes_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   struct avc_cache_stats *arg1 = (struct avc_cache_stats *) 0 ;
-  unsigned int result;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
+  unsigned int result;
   
   if (!PyArg_ParseTuple(args,(char *)"O:avc_cache_stats_cav_probes_get",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_avc_cache_stats, 0 |  0 );
@@ -9458,7 +9501,6 @@
   } 
   arg2 = (unsigned int)(val2);
   if (arg1) (arg1)->cav_misses = arg2;
-  
   resultobj = SWIG_Py_Void();
   return resultobj;
 fail:
@@ -9469,10 +9511,10 @@
 SWIGINTERN PyObject *_wrap_avc_cache_stats_cav_misses_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   struct avc_cache_stats *arg1 = (struct avc_cache_stats *) 0 ;
-  unsigned int result;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
+  unsigned int result;
   
   if (!PyArg_ParseTuple(args,(char *)"O:avc_cache_stats_cav_misses_get",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_avc_cache_stats, 0 |  0 );
@@ -9493,7 +9535,7 @@
   struct avc_cache_stats *result = 0 ;
   
   if (!PyArg_ParseTuple(args,(char *)":new_avc_cache_stats")) SWIG_fail;
-  result = (struct avc_cache_stats *)(struct avc_cache_stats *) calloc(1, sizeof(struct avc_cache_stats));
+  result = (struct avc_cache_stats *)calloc(1, sizeof(struct avc_cache_stats));
   resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_avc_cache_stats, SWIG_POINTER_NEW |  0 );
   return resultobj;
 fail:
@@ -9515,7 +9557,6 @@
   }
   arg1 = (struct avc_cache_stats *)(argp1);
   free((char *) arg1);
-  
   resultobj = SWIG_Py_Void();
   return resultobj;
 fail:
@@ -9525,7 +9566,7 @@
 
 SWIGINTERN PyObject *avc_cache_stats_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *obj;
-  if (!PyArg_ParseTuple(args,(char*)"O|swigregister", &obj)) return NULL;
+  if (!PyArg_ParseTuple(args,(char*)"O:swigregister", &obj)) return NULL;
   SWIG_TypeNewClientData(SWIGTYPE_p_avc_cache_stats, SWIG_NewClientData(obj));
   return SWIG_Py_Void();
 }
@@ -9571,12 +9612,12 @@
   PyObject *resultobj = 0;
   char *arg1 = (char *) 0 ;
   char **arg2 = (char **) 0 ;
-  int result;
   int res1 ;
   char *buf1 = 0 ;
   int alloc1 = 0 ;
   char *temp2 = 0 ;
   PyObject * obj0 = 0 ;
+  int result;
   
   arg2 = &temp2;
   if (!PyArg_ParseTuple(args,(char *)"O:get_default_type",&obj0)) SWIG_fail;
@@ -9608,7 +9649,6 @@
   char *arg1 = (char *) 0 ;
   security_context_t arg2 = (security_context_t) 0 ;
   security_context_t **arg3 = (security_context_t **) 0 ;
-  int result;
   int res1 ;
   char *buf1 = 0 ;
   int alloc1 = 0 ;
@@ -9618,6 +9658,7 @@
   security_context_t *temp3 ;
   PyObject * obj0 = 0 ;
   PyObject * obj1 = 0 ;
+  int result;
   
   {
     arg3 = &temp3;
@@ -9672,7 +9713,6 @@
   char *arg2 = (char *) 0 ;
   security_context_t arg3 = (security_context_t) 0 ;
   security_context_t **arg4 = (security_context_t **) 0 ;
-  int result;
   int res1 ;
   char *buf1 = 0 ;
   int alloc1 = 0 ;
@@ -9686,6 +9726,7 @@
   PyObject * obj0 = 0 ;
   PyObject * obj1 = 0 ;
   PyObject * obj2 = 0 ;
+  int result;
   
   {
     arg4 = &temp4;
@@ -9746,7 +9787,6 @@
   char *arg1 = (char *) 0 ;
   security_context_t arg2 = (security_context_t) 0 ;
   security_context_t *arg3 = (security_context_t *) 0 ;
-  int result;
   int res1 ;
   char *buf1 = 0 ;
   int alloc1 = 0 ;
@@ -9756,6 +9796,7 @@
   security_context_t temp3 = 0 ;
   PyObject * obj0 = 0 ;
   PyObject * obj1 = 0 ;
+  int result;
   
   arg3 = &temp3;
   if (!PyArg_ParseTuple(args,(char *)"OO:get_default_context",&obj0,&obj1)) SWIG_fail;
@@ -9795,7 +9836,6 @@
   char *arg2 = (char *) 0 ;
   security_context_t arg3 = (security_context_t) 0 ;
   security_context_t *arg4 = (security_context_t *) 0 ;
-  int result;
   int res1 ;
   char *buf1 = 0 ;
   int alloc1 = 0 ;
@@ -9809,6 +9849,7 @@
   PyObject * obj0 = 0 ;
   PyObject * obj1 = 0 ;
   PyObject * obj2 = 0 ;
+  int result;
   
   arg4 = &temp4;
   if (!PyArg_ParseTuple(args,(char *)"OOO:get_default_context_with_level",&obj0,&obj1,&obj2)) SWIG_fail;
@@ -9855,7 +9896,6 @@
   char *arg2 = (char *) 0 ;
   security_context_t arg3 = (security_context_t) 0 ;
   security_context_t *arg4 = (security_context_t *) 0 ;
-  int result;
   int res1 ;
   char *buf1 = 0 ;
   int alloc1 = 0 ;
@@ -9869,6 +9909,7 @@
   PyObject * obj0 = 0 ;
   PyObject * obj1 = 0 ;
   PyObject * obj2 = 0 ;
+  int result;
   
   arg4 = &temp4;
   if (!PyArg_ParseTuple(args,(char *)"OOO:get_default_context_with_role",&obj0,&obj1,&obj2)) SWIG_fail;
@@ -9916,7 +9957,6 @@
   char *arg3 = (char *) 0 ;
   security_context_t arg4 = (security_context_t) 0 ;
   security_context_t *arg5 = (security_context_t *) 0 ;
-  int result;
   int res1 ;
   char *buf1 = 0 ;
   int alloc1 = 0 ;
@@ -9934,6 +9974,7 @@
   PyObject * obj1 = 0 ;
   PyObject * obj2 = 0 ;
   PyObject * obj3 = 0 ;
+  int result;
   
   arg5 = &temp5;
   if (!PyArg_ParseTuple(args,(char *)"OOOO:get_default_context_with_rolelevel",&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
@@ -9985,9 +10026,9 @@
   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 = 0 ;
   security_context_t temp2 = 0 ;
+  int result;
   
   arg1 = &temp1;
   arg2 = &temp2;
@@ -10020,12 +10061,12 @@
   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 = 0 ;
   PyObject * obj0 = 0 ;
+  int result;
   
   arg2 = &temp2;
   if (!PyArg_ParseTuple(args,(char *)"O:manual_user_enter_context",&obj0)) SWIG_fail;
@@ -10218,6 +10259,7 @@
 	 { (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 *)"getseuserbyname", _wrap_getseuserbyname, METH_VARARGS, NULL},
+	 { (char *)"getseuser", _wrap_getseuser, 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},
@@ -10513,7 +10555,7 @@
 SWIG_InitializeModule(void *clientdata) {
   size_t i;
   swig_module_info *module_head, *iter;
-  int found;
+  int found, init;
   
   clientdata = clientdata;
   
@@ -10523,6 +10565,9 @@
     swig_module.type_initial = swig_type_initial;
     swig_module.cast_initial = swig_cast_initial;
     swig_module.next = &swig_module;
+    init = 1;
+  } else {
+    init = 0;
   }
   
   /* Try and load any already created modules */
@@ -10551,6 +10596,12 @@
     module_head->next = &swig_module;
   }
   
+  /* When multiple interpeters are used, a module could have already been initialized in
+       a different interpreter, but not yet have a pointer in this interpreter.
+       In this case, we do not want to continue adding types... everything should be
+       set up already */
+  if (init == 0) return;
+  
   /* Now work on filling in swig_module.types */
 #ifdef SWIGRUNTIME_DEBUG
   printf("SWIG_InitializeModule: size %d\n", swig_module.size);
diff --exclude-from=exclude -N -u -r nsalibselinux/src/seusers.c libselinux-2.0.76/src/seusers.c
--- nsalibselinux/src/seusers.c	2008-08-28 09:34:24.000000000 -0400
+++ libselinux-2.0.76/src/seusers.c	2008-12-16 09:36:39.000000000 -0500
@@ -243,3 +243,67 @@
 	*r_level = NULL;
 	return 0;
 }
+
+int getseuser(const char *username, const char *service, 
+	      char **r_seuser, char **r_level) {
+	int ret = -1;
+	int len = 0;
+	char *seuser = NULL;
+	char *level = NULL;
+	char *buffer = NULL;
+	size_t size = 0;
+	size_t lineno = 0;
+	char *rec = NULL;
+	char *path=NULL;
+	if (asprintf(&path,"%s/logins/%s", selinux_policy_root(), username) <  0)
+		goto err;
+	FILE *fp = fopen(path, "r");
+	free(path);
+	if (fp == NULL) goto err;
+	__fsetlocking(fp, FSETLOCKING_BYCALLER);
+	while (getline(&buffer, &size, fp) > 0) {
+		++lineno;
+
+		if (strncmp(buffer, "*:", 2) == 0) {
+			free(rec);
+			rec = strdup(buffer);
+			continue;
+		}
+		len = strlen(service);
+		if ((strncmp(buffer, service, len) == 0) &&
+		    (buffer[len] == ':')) {
+			free(rec);
+			rec = strdup(buffer);
+			break;
+		}
+	}
+
+	if (! rec)  goto err;
+	seuser = strchr(rec, ':');
+	if (! seuser) goto err;
+
+	seuser++;
+	level = strchr(seuser, ':');
+	*level = 0;
+	level++;
+	*r_seuser = strdup(seuser);
+	if (! *r_seuser) goto err;
+
+	len = strlen(level);
+	if (len && level[len-1] == '\n')
+		level[len-1] = 0;
+
+	*r_level = strdup(level);
+	if (! *r_level) {
+		free(*r_seuser);
+		goto err;
+	}
+	ret = 0;
+
+	err:
+	free(buffer);
+	if (fp) fclose(fp);
+	free(rec);
+
+	return (ret ? getseuserbyname(username, r_seuser, r_level) : ret);
+}
diff --exclude-from=exclude -N -u -r nsalibselinux/utils/getdefaultcon.c libselinux-2.0.76/utils/getdefaultcon.c
--- nsalibselinux/utils/getdefaultcon.c	2008-08-28 09:34:24.000000000 -0400
+++ libselinux-2.0.76/utils/getdefaultcon.c	2008-12-02 09:33:14.000000000 -0500
@@ -22,8 +22,9 @@
 	security_context_t usercon = NULL, cur_context = NULL;
 	char *user = NULL, *level = NULL, *role=NULL, *seuser=NULL, *dlevel=NULL;
 	int ret, opt;
+	int verbose = 0;
 
-	while ((opt = getopt(argc, argv, "l:r:")) > 0) {
+	while ((opt = getopt(argc, argv, "l:r:v")) > 0) {
 		switch (opt) {
 		case 'l':
 			level = strdup(optarg);
@@ -31,6 +32,9 @@
 		case 'r':
 			role = strdup(optarg);
 			break;
+		case 'v':
+			verbose = 1;
+			break;
 		default:
 			usage(argv[0], "invalid option", 1);
 		}
@@ -66,9 +70,13 @@
 	}
 	if (ret < 0)
 		perror(argv[0]);
-	else
-		printf("%s: %s from %s %s %s %s -> %s\n", argv[0], user, cur_context, seuser, role, level, usercon);
-
+	else {
+		if (verbose) {
+			printf("%s: %s from %s %s %s %s -> %s\n", argv[0], user, cur_context, seuser, role, level, usercon);
+		} else {
+			printf("%s", usercon);
+		}
+	}
 
 	free(role);
 	free(seuser);
@@ -76,5 +84,5 @@
 	free(dlevel);
 	free(usercon);
 
-	return 0;
+	return ret >= 0;
 }
diff --exclude-from=exclude -N -u -r nsalibselinux/utils/Makefile libselinux-2.0.76/utils/Makefile
--- nsalibselinux/utils/Makefile	2008-08-28 09:34:24.000000000 -0400
+++ libselinux-2.0.76/utils/Makefile	2008-12-19 15:55:54.000000000 -0500
@@ -2,28 +2,33 @@
 PREFIX ?= $(DESTDIR)/usr
 LIBDIR ?= $(PREFIX)/lib
 BINDIR ?= $(PREFIX)/sbin
+_BINDIR ?= $(DESTDIR)/sbin
 
 CFLAGS ?= -Wall
 override CFLAGS += -I../include -D_GNU_SOURCE $(EMFLAGS)
 LDLIBS += -L../src -lselinux -L$(LIBDIR)
 
 TARGETS=$(patsubst %.c,%,$(wildcard *.c))
+
+
 ifeq ($(DISABLE_AVC),y)
 	UNUSED_TARGETS+=compute_av compute_create compute_member compute_relabel
 endif
 ifeq ($(DISABLE_BOOL),y)
 	UNUSED_TARGETS+=getsebool togglesebool
 endif
-TARGETS:= $(filter-out $(UNUSED_TARGETS), $(TARGETS))
+TARGETS:= $(filter-out $(UNUSED_TARGETS) matchpathcon, $(TARGETS))
 
-all: $(TARGETS)
+all: $(TARGETS) matchpathcon
 
 install: all
 	-mkdir -p $(BINDIR)
 	install -m 755 $(TARGETS) $(BINDIR)
-
+	-mkdir -p $(_BINDIR)
+	install -m 755 matchpathcon $(_BINDIR)
+	(cd $(BINDIR); 	ln -fs ../../sbin/matchpathcon)
 clean:
-	rm -f $(TARGETS) *.o 
+	rm -f $(TARGETS) *.o *~
 
 indent:
 	../../scripts/Lindent $(wildcard *.[ch])
diff --exclude-from=exclude -N -u -r nsalibselinux/utils/matchpathcon.c libselinux-2.0.76/utils/matchpathcon.c
--- nsalibselinux/utils/matchpathcon.c	2008-10-28 10:06:51.000000000 -0400
+++ libselinux-2.0.76/utils/matchpathcon.c	2008-12-19 15:14:20.000000000 -0500
@@ -101,6 +101,11 @@
 	for (i = optind; i < argc; i++) {
 		int mode = 0;
 		struct stat buf;
+		int len = strlen(argv[i]);
+		if (len > 1  && argv[i][len - 1 ] == '/') {
+			argv[i][len - 1 ] = '\0';
+		}
+
 		if (lstat(argv[i], &buf) == 0)
 			mode = buf.st_mode;