rpms/libselinux/devel libselinux-rhat.patch, 1.71, 1.72 libselinux.spec, 1.165, 1.166

fedora-cvs-commits at redhat.com fedora-cvs-commits at redhat.com
Tue Dec 13 20:44:40 UTC 2005


Author: dwalsh

Update of /cvs/dist/rpms/libselinux/devel
In directory cvs.devel.redhat.com:/tmp/cvs-serv15307

Modified Files:
	libselinux-rhat.patch libselinux.spec 
Log Message:
* Sun Dec 11 2005 Dan Walsh <dwalsh at redhat.com> 1.29.1-3
- update to latest libsetrans  
- Fix potential memory leak


libselinux-rhat.patch:
 init.c |    7 +++++++
 1 files changed, 7 insertions(+)

Index: libselinux-rhat.patch
===================================================================
RCS file: /cvs/dist/rpms/libselinux/devel/libselinux-rhat.patch,v
retrieving revision 1.71
retrieving revision 1.72
diff -u -r1.71 -r1.72
--- libselinux-rhat.patch	7 Dec 2005 15:53:55 -0000	1.71
+++ libselinux-rhat.patch	13 Dec 2005 20:44:36 -0000	1.72
@@ -1,770 +1,17 @@
-diff --exclude-from=exclude -N -u -r nsalibselinux/src/selinux.py libselinux-1.27.28/src/selinux.py
---- nsalibselinux/src/selinux.py	2005-11-28 14:10:10.000000000 -0500
-+++ libselinux-1.27.28/src/selinux.py	2005-12-07 09:00:01.000000000 -0500
-@@ -87,8 +87,6 @@
- 
- security_setenforce = _selinux.security_setenforce
- 
--security_disable = _selinux.security_disable
--
- security_policyvers = _selinux.security_policyvers
- 
- security_get_boolean_names = _selinux.security_get_boolean_names
-diff --exclude-from=exclude -N -u -r nsalibselinux/src/selinuxswig.i libselinux-1.27.28/src/selinuxswig.i
---- nsalibselinux/src/selinuxswig.i	2005-11-28 14:10:10.000000000 -0500
-+++ libselinux-1.27.28/src/selinuxswig.i	2005-12-07 08:59:48.000000000 -0500
-@@ -22,6 +22,15 @@
- %{
- 	#include "selinux/selinux.h"
- %}
-+%apply int *OUTPUT { int * };
-+%apply int *OUTPUT { size_t * };
-+
-+%typemap(in, numinputs=0) security_context_t *(security_context_t temp) {
-+	$1 = &temp;
-+}
-+%typemap(argout) security_context_t * {
-+	$result = t_output_helper($result, PyString_FromString(*$1));
-+}
- 
- extern int is_selinux_enabled(void);
- extern int is_selinux_mls_enabled(void);
-@@ -51,7 +60,6 @@
- 					 security_context_t *canoncon);
- extern int security_getenforce(void);
- extern int security_setenforce(int value);
--extern int security_disable(void);
- extern int security_policyvers(void);
- extern int security_get_boolean_names(char ***names, int *len);
- extern int security_get_boolean_pending(const char *name);
-@@ -96,10 +104,16 @@
- 
- extern int is_context_customizable (security_context_t scontext);
- 
--extern int selinux_trans_to_raw_context(security_context_t trans, 
-+extern int selinux_trans_to_raw_context(char *trans, 
- 					security_context_t *rawp);
--extern int selinux_raw_to_trans_context(security_context_t raw, 
-+extern int selinux_raw_to_trans_context(char *raw, 
- 					security_context_t *transp);
- 
-+%typemap(in, numinputs=0) char **(char *temp) {
-+	$1 = &temp;
-+}
-+
-+%typemap(argout) char ** {
-+	$result = t_output_helper($result, PyString_FromString(*$1));
-+}
- extern int getseuserbyname(const char *linuxuser, char **seuser, char **level);
--
-diff --exclude-from=exclude -N -u -r nsalibselinux/src/selinuxswig_wrap.c libselinux-1.27.28/src/selinuxswig_wrap.c
---- nsalibselinux/src/selinuxswig_wrap.c	2005-11-28 14:10:10.000000000 -0500
-+++ libselinux-1.27.28/src/selinuxswig_wrap.c	2005-12-07 09:00:01.000000000 -0500
-@@ -1515,6 +1515,26 @@
- int getpeercon(int,security_context_t *);
- int selinux_mkload_policy(int);
- int selinux_init_load_policy(int *);
-+
-+SWIGINTERN PyObject*
-+t_output_helper(PyObject* target, PyObject* o) {
-+  if (!target) {
-+    target = o;
-+  } else if (target == Py_None) {  
-+    Py_DECREF(target);
-+    target = o;
-+  } else {
-+    if (!PyList_Check(target)) {
-+      PyObject *o2 = target;
-+      target = PyList_New(1);
-+      PyList_SetItem(target, 0, o2);
-+    }
-+    PyList_Append(target,o);
-+    }
-+  return target;
-+}
-+
-+
- int security_set_boolean_list(size_t,SELboolean *,int);
- 
- SWIGINTERN int
-@@ -1569,7 +1589,6 @@
- int security_canonicalize_context(security_context_t,security_context_t *);
- int security_getenforce(void);
- int security_setenforce(int);
--int security_disable(void);
- int security_policyvers(void);
- int security_get_boolean_names(char ***,int *);
- int security_get_boolean_pending(char const *);
-@@ -1688,8 +1707,8 @@
- int checkPasswdAccess(access_vector_t);
- int rpm_execcon(unsigned int,char const *,char *const [],char *const []);
- int is_context_customizable(security_context_t);
--int selinux_trans_to_raw_context(security_context_t,security_context_t *);
--int selinux_raw_to_trans_context(security_context_t,security_context_t *);
-+int selinux_trans_to_raw_context(char *,security_context_t *);
-+int selinux_raw_to_trans_context(char *,security_context_t *);
- int getseuserbyname(char const *,char **,char **);
- #ifdef __cplusplus
- extern "C" {
-@@ -1730,16 +1749,20 @@
-     PyObject *resultobj;
-     security_context_t *arg1 = (security_context_t *) 0 ;
-     int result;
--    PyObject * obj0 = 0 ;
-+    security_context_t temp1 ;
-     
--    if(!PyArg_ParseTuple(args,(char *)"O:getcon",&obj0)) goto fail;
--    SWIG_Python_ConvertPtr(obj0, (void **)&arg1, SWIGTYPE_p_security_context_t, SWIG_POINTER_EXCEPTION | 0);
--    if (SWIG_arg_fail(1)) SWIG_fail;
-+    {
-+        arg1 = &temp1;
-+    }
-+    if(!PyArg_ParseTuple(args,(char *)":getcon")) goto fail;
-     result = (int)getcon(arg1);
-     
-     {
-         resultobj = SWIG_From_int((int)(result)); 
-     }
-+    {
-+        resultobj = t_output_helper(resultobj, PyString_FromString(*arg1));
-+    }
-     return resultobj;
-     fail:
-     return NULL;
-@@ -1779,10 +1802,13 @@
-     pid_t arg1 ;
-     security_context_t *arg2 = (security_context_t *) 0 ;
-     int result;
-+    security_context_t temp2 ;
-     PyObject * obj0 = 0 ;
--    PyObject * obj1 = 0 ;
-     
--    if(!PyArg_ParseTuple(args,(char *)"OO:getpidcon",&obj0,&obj1)) goto fail;
-+    {
-+        arg2 = &temp2;
-+    }
-+    if(!PyArg_ParseTuple(args,(char *)"O:getpidcon",&obj0)) goto fail;
-     {
-         pid_t * argp;
-         SWIG_Python_ConvertPtr(obj0, (void **)&argp, SWIGTYPE_p_pid_t, SWIG_POINTER_EXCEPTION);
-@@ -1793,13 +1819,14 @@
-         if (SWIG_arg_fail(1)) SWIG_fail;
-         arg1 = *argp;
-     }
--    SWIG_Python_ConvertPtr(obj1, (void **)&arg2, SWIGTYPE_p_security_context_t, SWIG_POINTER_EXCEPTION | 0);
--    if (SWIG_arg_fail(2)) SWIG_fail;
-     result = (int)getpidcon(arg1,arg2);
-     
-     {
-         resultobj = SWIG_From_int((int)(result)); 
-     }
-+    {
-+        resultobj = t_output_helper(resultobj, PyString_FromString(*arg2));
-+    }
-     return resultobj;
-     fail:
-     return NULL;
-@@ -1810,16 +1837,20 @@
-     PyObject *resultobj;
-     security_context_t *arg1 = (security_context_t *) 0 ;
-     int result;
--    PyObject * obj0 = 0 ;
-+    security_context_t temp1 ;
-     
--    if(!PyArg_ParseTuple(args,(char *)"O:getprevcon",&obj0)) goto fail;
--    SWIG_Python_ConvertPtr(obj0, (void **)&arg1, SWIGTYPE_p_security_context_t, SWIG_POINTER_EXCEPTION | 0);
--    if (SWIG_arg_fail(1)) SWIG_fail;
-+    {
-+        arg1 = &temp1;
-+    }
-+    if(!PyArg_ParseTuple(args,(char *)":getprevcon")) goto fail;
-     result = (int)getprevcon(arg1);
-     
-     {
-         resultobj = SWIG_From_int((int)(result)); 
-     }
-+    {
-+        resultobj = t_output_helper(resultobj, PyString_FromString(*arg1));
-+    }
-     return resultobj;
-     fail:
-     return NULL;
-@@ -1830,16 +1861,20 @@
-     PyObject *resultobj;
-     security_context_t *arg1 = (security_context_t *) 0 ;
-     int result;
--    PyObject * obj0 = 0 ;
-+    security_context_t temp1 ;
-     
--    if(!PyArg_ParseTuple(args,(char *)"O:getexeccon",&obj0)) goto fail;
--    SWIG_Python_ConvertPtr(obj0, (void **)&arg1, SWIGTYPE_p_security_context_t, SWIG_POINTER_EXCEPTION | 0);
--    if (SWIG_arg_fail(1)) SWIG_fail;
-+    {
-+        arg1 = &temp1;
-+    }
-+    if(!PyArg_ParseTuple(args,(char *)":getexeccon")) goto fail;
-     result = (int)getexeccon(arg1);
-     
-     {
-         resultobj = SWIG_From_int((int)(result)); 
-     }
-+    {
-+        resultobj = t_output_helper(resultobj, PyString_FromString(*arg1));
-+    }
-     return resultobj;
-     fail:
-     return NULL;
-@@ -1878,16 +1913,20 @@
-     PyObject *resultobj;
-     security_context_t *arg1 = (security_context_t *) 0 ;
-     int result;
--    PyObject * obj0 = 0 ;
-+    security_context_t temp1 ;
-     
--    if(!PyArg_ParseTuple(args,(char *)"O:getfscreatecon",&obj0)) goto fail;
--    SWIG_Python_ConvertPtr(obj0, (void **)&arg1, SWIGTYPE_p_security_context_t, SWIG_POINTER_EXCEPTION | 0);
--    if (SWIG_arg_fail(1)) SWIG_fail;
-+    {
-+        arg1 = &temp1;
-+    }
-+    if(!PyArg_ParseTuple(args,(char *)":getfscreatecon")) goto fail;
-     result = (int)getfscreatecon(arg1);
-     
-     {
-         resultobj = SWIG_From_int((int)(result)); 
-     }
-+    {
-+        resultobj = t_output_helper(resultobj, PyString_FromString(*arg1));
-+    }
-     return resultobj;
-     fail:
-     return NULL;
-@@ -1927,20 +1966,24 @@
-     char *arg1 = (char *) 0 ;
-     security_context_t *arg2 = (security_context_t *) 0 ;
-     int result;
-+    security_context_t temp2 ;
-     PyObject * obj0 = 0 ;
--    PyObject * obj1 = 0 ;
-     
--    if(!PyArg_ParseTuple(args,(char *)"OO:getfilecon",&obj0,&obj1)) goto fail;
-+    {
-+        arg2 = &temp2;
-+    }
-+    if(!PyArg_ParseTuple(args,(char *)"O:getfilecon",&obj0)) goto fail;
-     if (!SWIG_AsCharPtr(obj0, (char**)&arg1)) {
-         SWIG_arg_fail(1);SWIG_fail;
-     }
--    SWIG_Python_ConvertPtr(obj1, (void **)&arg2, SWIGTYPE_p_security_context_t, SWIG_POINTER_EXCEPTION | 0);
--    if (SWIG_arg_fail(2)) SWIG_fail;
-     result = (int)getfilecon((char const *)arg1,arg2);
-     
-     {
-         resultobj = SWIG_From_int((int)(result)); 
-     }
-+    {
-+        resultobj = t_output_helper(resultobj, PyString_FromString(*arg2));
-+    }
-     return resultobj;
-     fail:
-     return NULL;
-@@ -1952,20 +1995,24 @@
-     char *arg1 = (char *) 0 ;
-     security_context_t *arg2 = (security_context_t *) 0 ;
-     int result;
-+    security_context_t temp2 ;
-     PyObject * obj0 = 0 ;
--    PyObject * obj1 = 0 ;
-     
--    if(!PyArg_ParseTuple(args,(char *)"OO:lgetfilecon",&obj0,&obj1)) goto fail;
-+    {
-+        arg2 = &temp2;
-+    }
-+    if(!PyArg_ParseTuple(args,(char *)"O:lgetfilecon",&obj0)) goto fail;
-     if (!SWIG_AsCharPtr(obj0, (char**)&arg1)) {
-         SWIG_arg_fail(1);SWIG_fail;
-     }
--    SWIG_Python_ConvertPtr(obj1, (void **)&arg2, SWIGTYPE_p_security_context_t, SWIG_POINTER_EXCEPTION | 0);
--    if (SWIG_arg_fail(2)) SWIG_fail;
-     result = (int)lgetfilecon((char const *)arg1,arg2);
-     
-     {
-         resultobj = SWIG_From_int((int)(result)); 
-     }
-+    {
-+        resultobj = t_output_helper(resultobj, PyString_FromString(*arg2));
-+    }
-     return resultobj;
-     fail:
-     return NULL;
-@@ -1977,21 +2024,25 @@
-     int arg1 ;
-     security_context_t *arg2 = (security_context_t *) 0 ;
-     int result;
-+    security_context_t temp2 ;
-     PyObject * obj0 = 0 ;
--    PyObject * obj1 = 0 ;
-     
--    if(!PyArg_ParseTuple(args,(char *)"OO:fgetfilecon",&obj0,&obj1)) goto fail;
-+    {
-+        arg2 = &temp2;
-+    }
-+    if(!PyArg_ParseTuple(args,(char *)"O:fgetfilecon",&obj0)) goto fail;
-     {
-         arg1 = (int)(SWIG_As_int(obj0)); 
-         if (SWIG_arg_fail(1)) SWIG_fail;
-     }
--    SWIG_Python_ConvertPtr(obj1, (void **)&arg2, SWIGTYPE_p_security_context_t, SWIG_POINTER_EXCEPTION | 0);
--    if (SWIG_arg_fail(2)) SWIG_fail;
-     result = (int)fgetfilecon(arg1,arg2);
-     
-     {
-         resultobj = SWIG_From_int((int)(result)); 
-     }
-+    {
-+        resultobj = t_output_helper(resultobj, PyString_FromString(*arg2));
-+    }
-     return resultobj;
-     fail:
-     return NULL;
-@@ -2103,21 +2154,25 @@
-     int arg1 ;
-     security_context_t *arg2 = (security_context_t *) 0 ;
-     int result;
-+    security_context_t temp2 ;
-     PyObject * obj0 = 0 ;
--    PyObject * obj1 = 0 ;
-     
--    if(!PyArg_ParseTuple(args,(char *)"OO:getpeercon",&obj0,&obj1)) goto fail;
-+    {
-+        arg2 = &temp2;
-+    }
-+    if(!PyArg_ParseTuple(args,(char *)"O:getpeercon",&obj0)) goto fail;
-     {
-         arg1 = (int)(SWIG_As_int(obj0)); 
-         if (SWIG_arg_fail(1)) SWIG_fail;
-     }
--    SWIG_Python_ConvertPtr(obj1, (void **)&arg2, SWIGTYPE_p_security_context_t, SWIG_POINTER_EXCEPTION | 0);
--    if (SWIG_arg_fail(2)) SWIG_fail;
-     result = (int)getpeercon(arg1,arg2);
-     
-     {
-         resultobj = SWIG_From_int((int)(result)); 
-     }
-+    {
-+        resultobj = t_output_helper(resultobj, PyString_FromString(*arg2));
-+    }
-     return resultobj;
-     fail:
-     return NULL;
-@@ -2150,16 +2205,18 @@
-     PyObject *resultobj;
-     int *arg1 = (int *) 0 ;
-     int result;
--    PyObject * obj0 = 0 ;
-+    int temp1 ;
-+    int res1 = 0 ;
-     
--    if(!PyArg_ParseTuple(args,(char *)"O:selinux_init_load_policy",&obj0)) goto fail;
--    SWIG_Python_ConvertPtr(obj0, (void **)&arg1, SWIGTYPE_p_int, SWIG_POINTER_EXCEPTION | 0);
--    if (SWIG_arg_fail(1)) SWIG_fail;
-+    arg1 = &temp1; res1 = SWIG_NEWOBJ;
-+    if(!PyArg_ParseTuple(args,(char *)":selinux_init_load_policy")) goto fail;
-     result = (int)selinux_init_load_policy(arg1);
-     
-     {
-         resultobj = SWIG_From_int((int)(result)); 
-     }
-+    resultobj = t_output_helper(resultobj, ((res1 == SWIG_NEWOBJ) ?
-+    SWIG_From_int((*arg1)) : SWIG_NewPointerObj((void*)(arg1), SWIGTYPE_p_int, 0)));
-     return resultobj;
-     fail:
-     return NULL;
-@@ -2252,10 +2309,13 @@
-     security_context_t arg1 ;
-     security_context_t *arg2 = (security_context_t *) 0 ;
-     int result;
-+    security_context_t temp2 ;
-     PyObject * obj0 = 0 ;
--    PyObject * obj1 = 0 ;
-     
--    if(!PyArg_ParseTuple(args,(char *)"OO:security_canonicalize_context",&obj0,&obj1)) goto fail;
-+    {
-+        arg2 = &temp2;
-+    }
-+    if(!PyArg_ParseTuple(args,(char *)"O:security_canonicalize_context",&obj0)) goto fail;
-     {
-         security_context_t * argp;
-         SWIG_Python_ConvertPtr(obj0, (void **)&argp, SWIGTYPE_p_security_context_t, SWIG_POINTER_EXCEPTION);
-@@ -2266,13 +2326,14 @@
-         if (SWIG_arg_fail(1)) SWIG_fail;
-         arg1 = *argp;
-     }
--    SWIG_Python_ConvertPtr(obj1, (void **)&arg2, SWIGTYPE_p_security_context_t, SWIG_POINTER_EXCEPTION | 0);
--    if (SWIG_arg_fail(2)) SWIG_fail;
-     result = (int)security_canonicalize_context(arg1,arg2);
-     
-     {
-         resultobj = SWIG_From_int((int)(result)); 
-     }
-+    {
-+        resultobj = t_output_helper(resultobj, PyString_FromString(*arg2));
-+    }
-     return resultobj;
-     fail:
-     return NULL;
-@@ -2317,22 +2378,6 @@
- }
- 
- 
--static PyObject *_wrap_security_disable(PyObject *self, PyObject *args) {
--    PyObject *resultobj;
--    int result;
--    
--    if(!PyArg_ParseTuple(args,(char *)":security_disable")) goto fail;
--    result = (int)security_disable();
--    
--    {
--        resultobj = SWIG_From_int((int)(result)); 
--    }
--    return resultobj;
--    fail:
--    return NULL;
--}
--
--
- static PyObject *_wrap_security_policyvers(PyObject *self, PyObject *args) {
-     PyObject *resultobj;
-     int result;
-@@ -2354,19 +2399,21 @@
-     char ***arg1 = (char ***) 0 ;
-     int *arg2 = (int *) 0 ;
-     int result;
-+    int temp2 ;
-+    int res2 = 0 ;
-     PyObject * obj0 = 0 ;
--    PyObject * obj1 = 0 ;
-     
--    if(!PyArg_ParseTuple(args,(char *)"OO:security_get_boolean_names",&obj0,&obj1)) goto fail;
-+    arg2 = &temp2; res2 = SWIG_NEWOBJ;
-+    if(!PyArg_ParseTuple(args,(char *)"O:security_get_boolean_names",&obj0)) goto fail;
-     SWIG_Python_ConvertPtr(obj0, (void **)&arg1, SWIGTYPE_p_p_p_char, SWIG_POINTER_EXCEPTION | 0);
-     if (SWIG_arg_fail(1)) SWIG_fail;
--    SWIG_Python_ConvertPtr(obj1, (void **)&arg2, SWIGTYPE_p_int, SWIG_POINTER_EXCEPTION | 0);
--    if (SWIG_arg_fail(2)) SWIG_fail;
-     result = (int)security_get_boolean_names(arg1,arg2);
-     
-     {
-         resultobj = SWIG_From_int((int)(result)); 
-     }
-+    resultobj = t_output_helper(resultobj, ((res2 == SWIG_NEWOBJ) ?
-+    SWIG_From_int((*arg2)) : SWIG_NewPointerObj((void*)(arg2), SWIGTYPE_p_int, 0)));
-     return resultobj;
-     fail:
-     return NULL;
-@@ -2504,11 +2551,14 @@
-     mode_t arg2 ;
-     security_context_t *arg3 = (security_context_t *) 0 ;
-     int result;
-+    security_context_t temp3 ;
-     PyObject * obj0 = 0 ;
-     PyObject * obj1 = 0 ;
--    PyObject * obj2 = 0 ;
-     
--    if(!PyArg_ParseTuple(args,(char *)"OOO:matchpathcon",&obj0,&obj1,&obj2)) goto fail;
-+    {
-+        arg3 = &temp3;
-+    }
-+    if(!PyArg_ParseTuple(args,(char *)"OO:matchpathcon",&obj0,&obj1)) goto fail;
-     if (!SWIG_AsCharPtr(obj0, (char**)&arg1)) {
-         SWIG_arg_fail(1);SWIG_fail;
-     }
-@@ -2522,13 +2572,14 @@
-         if (SWIG_arg_fail(2)) SWIG_fail;
-         arg2 = *argp;
-     }
--    SWIG_Python_ConvertPtr(obj2, (void **)&arg3, SWIGTYPE_p_security_context_t, SWIG_POINTER_EXCEPTION | 0);
--    if (SWIG_arg_fail(3)) SWIG_fail;
-     result = (int)matchpathcon((char const *)arg1,arg2,arg3);
-     
-     {
-         resultobj = SWIG_From_int((int)(result)); 
-     }
-+    {
-+        resultobj = t_output_helper(resultobj, PyString_FromString(*arg3));
-+    }
-     return resultobj;
-     fail:
-     return NULL;
-@@ -2540,20 +2591,24 @@
-     char *arg1 = (char *) 0 ;
-     security_context_t *arg2 = (security_context_t *) 0 ;
-     int result;
-+    security_context_t temp2 ;
-     PyObject * obj0 = 0 ;
--    PyObject * obj1 = 0 ;
-     
--    if(!PyArg_ParseTuple(args,(char *)"OO:matchmediacon",&obj0,&obj1)) goto fail;
-+    {
-+        arg2 = &temp2;
-+    }
-+    if(!PyArg_ParseTuple(args,(char *)"O:matchmediacon",&obj0)) goto fail;
-     if (!SWIG_AsCharPtr(obj0, (char**)&arg1)) {
-         SWIG_arg_fail(1);SWIG_fail;
-     }
--    SWIG_Python_ConvertPtr(obj1, (void **)&arg2, SWIGTYPE_p_security_context_t, SWIG_POINTER_EXCEPTION | 0);
--    if (SWIG_arg_fail(2)) SWIG_fail;
-     result = (int)matchmediacon((char const *)arg1,arg2);
-     
-     {
-         resultobj = SWIG_From_int((int)(result)); 
-     }
-+    {
-+        resultobj = t_output_helper(resultobj, PyString_FromString(*arg2));
-+    }
-     return resultobj;
-     fail:
-     return NULL;
-@@ -2564,16 +2619,18 @@
-     PyObject *resultobj;
-     int *arg1 = (int *) 0 ;
-     int result;
--    PyObject * obj0 = 0 ;
-+    int temp1 ;
-+    int res1 = 0 ;
-     
--    if(!PyArg_ParseTuple(args,(char *)"O:selinux_getenforcemode",&obj0)) goto fail;
--    SWIG_Python_ConvertPtr(obj0, (void **)&arg1, SWIGTYPE_p_int, SWIG_POINTER_EXCEPTION | 0);
--    if (SWIG_arg_fail(1)) SWIG_fail;
-+    arg1 = &temp1; res1 = SWIG_NEWOBJ;
-+    if(!PyArg_ParseTuple(args,(char *)":selinux_getenforcemode")) goto fail;
-     result = (int)selinux_getenforcemode(arg1);
-     
-     {
-         resultobj = SWIG_From_int((int)(result)); 
-     }
-+    resultobj = t_output_helper(resultobj, ((res1 == SWIG_NEWOBJ) ?
-+    SWIG_From_int((*arg1)) : SWIG_NewPointerObj((void*)(arg1), SWIGTYPE_p_int, 0)));
-     return resultobj;
-     fail:
-     return NULL;
-@@ -2925,30 +2982,27 @@
- 
- static PyObject *_wrap_selinux_trans_to_raw_context(PyObject *self, PyObject *args) {
-     PyObject *resultobj;
--    security_context_t arg1 ;
-+    char *arg1 = (char *) 0 ;
-     security_context_t *arg2 = (security_context_t *) 0 ;
-     int result;
-+    security_context_t temp2 ;
-     PyObject * obj0 = 0 ;
--    PyObject * obj1 = 0 ;
-     
--    if(!PyArg_ParseTuple(args,(char *)"OO:selinux_trans_to_raw_context",&obj0,&obj1)) goto fail;
-     {
--        security_context_t * argp;
--        SWIG_Python_ConvertPtr(obj0, (void **)&argp, SWIGTYPE_p_security_context_t, SWIG_POINTER_EXCEPTION);
--        if (SWIG_arg_fail(1)) SWIG_fail;
--        if (argp == NULL) {
--            SWIG_null_ref("security_context_t");
--        }
--        if (SWIG_arg_fail(1)) SWIG_fail;
--        arg1 = *argp;
-+        arg2 = &temp2;
-+    }
-+    if(!PyArg_ParseTuple(args,(char *)"O:selinux_trans_to_raw_context",&obj0)) goto fail;
-+    if (!SWIG_AsCharPtr(obj0, (char**)&arg1)) {
-+        SWIG_arg_fail(1);SWIG_fail;
-     }
--    SWIG_Python_ConvertPtr(obj1, (void **)&arg2, SWIGTYPE_p_security_context_t, SWIG_POINTER_EXCEPTION | 0);
--    if (SWIG_arg_fail(2)) SWIG_fail;
-     result = (int)selinux_trans_to_raw_context(arg1,arg2);
-     
-     {
-         resultobj = SWIG_From_int((int)(result)); 
-     }
-+    {
-+        resultobj = t_output_helper(resultobj, PyString_FromString(*arg2));
-+    }
-     return resultobj;
-     fail:
-     return NULL;
-@@ -2957,30 +3011,27 @@
- 
- static PyObject *_wrap_selinux_raw_to_trans_context(PyObject *self, PyObject *args) {
-     PyObject *resultobj;
--    security_context_t arg1 ;
-+    char *arg1 = (char *) 0 ;
-     security_context_t *arg2 = (security_context_t *) 0 ;
-     int result;
-+    security_context_t temp2 ;
-     PyObject * obj0 = 0 ;
--    PyObject * obj1 = 0 ;
-     
--    if(!PyArg_ParseTuple(args,(char *)"OO:selinux_raw_to_trans_context",&obj0,&obj1)) goto fail;
-     {
--        security_context_t * argp;
--        SWIG_Python_ConvertPtr(obj0, (void **)&argp, SWIGTYPE_p_security_context_t, SWIG_POINTER_EXCEPTION);
--        if (SWIG_arg_fail(1)) SWIG_fail;
--        if (argp == NULL) {
--            SWIG_null_ref("security_context_t");
--        }
--        if (SWIG_arg_fail(1)) SWIG_fail;
--        arg1 = *argp;
-+        arg2 = &temp2;
-+    }
-+    if(!PyArg_ParseTuple(args,(char *)"O:selinux_raw_to_trans_context",&obj0)) goto fail;
-+    if (!SWIG_AsCharPtr(obj0, (char**)&arg1)) {
-+        SWIG_arg_fail(1);SWIG_fail;
-     }
--    SWIG_Python_ConvertPtr(obj1, (void **)&arg2, SWIGTYPE_p_security_context_t, SWIG_POINTER_EXCEPTION | 0);
--    if (SWIG_arg_fail(2)) SWIG_fail;
-     result = (int)selinux_raw_to_trans_context(arg1,arg2);
-     
-     {
-         resultobj = SWIG_From_int((int)(result)); 
-     }
-+    {
-+        resultobj = t_output_helper(resultobj, PyString_FromString(*arg2));
-+    }
-     return resultobj;
-     fail:
-     return NULL;
-@@ -2993,23 +3044,31 @@
-     char **arg2 = (char **) 0 ;
-     char **arg3 = (char **) 0 ;
-     int result;
-+    char *temp2 ;
-+    char *temp3 ;
-     PyObject * obj0 = 0 ;
--    PyObject * obj1 = 0 ;
--    PyObject * obj2 = 0 ;
-     
--    if(!PyArg_ParseTuple(args,(char *)"OOO:getseuserbyname",&obj0,&obj1,&obj2)) goto fail;
-+    {
-+        arg2 = &temp2;
-+    }
-+    {
-+        arg3 = &temp3;
-+    }
-+    if(!PyArg_ParseTuple(args,(char *)"O:getseuserbyname",&obj0)) goto fail;
-     if (!SWIG_AsCharPtr(obj0, (char**)&arg1)) {
-         SWIG_arg_fail(1);SWIG_fail;
-     }
--    SWIG_Python_ConvertPtr(obj1, (void **)&arg2, SWIGTYPE_p_p_char, SWIG_POINTER_EXCEPTION | 0);
--    if (SWIG_arg_fail(2)) SWIG_fail;
--    SWIG_Python_ConvertPtr(obj2, (void **)&arg3, SWIGTYPE_p_p_char, SWIG_POINTER_EXCEPTION | 0);
--    if (SWIG_arg_fail(3)) SWIG_fail;
-     result = (int)getseuserbyname((char const *)arg1,arg2,arg3);
-     
-     {
-         resultobj = SWIG_From_int((int)(result)); 
-     }
-+    {
-+        resultobj = t_output_helper(resultobj, PyString_FromString(*arg2));
-+    }
-+    {
-+        resultobj = t_output_helper(resultobj, PyString_FromString(*arg3));
-+    }
-     return resultobj;
-     fail:
-     return NULL;
-@@ -3042,7 +3101,6 @@
- 	 { (char *)"security_canonicalize_context", _wrap_security_canonicalize_context, METH_VARARGS, NULL},
- 	 { (char *)"security_getenforce", _wrap_security_getenforce, METH_VARARGS, NULL},
- 	 { (char *)"security_setenforce", _wrap_security_setenforce, METH_VARARGS, NULL},
--	 { (char *)"security_disable", _wrap_security_disable, METH_VARARGS, NULL},
- 	 { (char *)"security_policyvers", _wrap_security_policyvers, METH_VARARGS, NULL},
- 	 { (char *)"security_get_boolean_names", _wrap_security_get_boolean_names, METH_VARARGS, NULL},
- 	 { (char *)"security_get_boolean_pending", _wrap_security_get_boolean_pending, METH_VARARGS, NULL},
-diff --exclude-from=exclude -N -u -r nsalibselinux/utils/getseuser.c libselinux-1.27.28/utils/getseuser.c
---- nsalibselinux/utils/getseuser.c	1969-12-31 19:00:00.000000000 -0500
-+++ libselinux-1.27.28/utils/getseuser.c	2005-12-07 08:58:59.000000000 -0500
-@@ -0,0 +1,27 @@
-+#include <unistd.h>
-+#include <stdio.h>
-+#include <stdlib.h>
-+#include <selinux/selinux.h>
-+
-+int main(int argc, char **argv) 
-+{
-+	char *seuser, *range;
-+	int rc, i;
-+
-+	if (argc < 2) {
-+		fprintf(stderr, "usage:  %s path...\n", argv[0]);
-+		exit(1);
-+	}
-+
-+	for (i = 1; i < argc; i++) {
-+		rc = getseuserbyname(argv[i], &seuser, &range);
-+		if (rc < 0) {
-+			fprintf(stderr, "%s:  getseuserbyname(%s) failed\n", argv[0], argv[i]);
-+			exit(2);
-+		}
-+		printf("%s\t%s\t%s\n", argv[i], seuser, range);
-+		freecon(seuser);
-+		freecon(range);
-+	}
-+	exit(0);
-+}
-diff --exclude-from=exclude -N -u -r nsalibselinux/utils/setrans.c libselinux-1.27.28/utils/setrans.c
---- nsalibselinux/utils/setrans.c	1969-12-31 19:00:00.000000000 -0500
-+++ libselinux-1.27.28/utils/setrans.c	2005-12-07 08:58:59.000000000 -0500
-@@ -0,0 +1,26 @@
-+#include <unistd.h>
-+#include <stdio.h>
-+#include <stdlib.h>
-+#include <selinux/selinux.h>
-+
-+int main(int argc, char **argv) 
-+{
-+	char *buf;
-+	int rc, i;
-+
-+	if (argc < 2) {
-+		fprintf(stderr, "usage:  %s context...\n", argv[0]);
-+		exit(1);
-+	}
-+
-+	for (i = 1; i < argc; i++) {
-+		rc = selinux_raw_to_trans_context(argv[i], &buf);
-+		if (rc < 0) {
-+			fprintf(stderr, "%s:  selinux_raw_to_trans_context(%s) failed\n", argv[0], argv[i]);
-+			exit(2);
-+		}
-+		printf("%s\t%s\t%s\n", argv[i], buf);
-+		freecon(buf);
-+	}
-+	exit(0);
-+}
-diff --exclude-from=exclude -N -u -r nsalibselinux/utils/seuntrans.c libselinux-1.27.28/utils/seuntrans.c
---- nsalibselinux/utils/seuntrans.c	1969-12-31 19:00:00.000000000 -0500
-+++ libselinux-1.27.28/utils/seuntrans.c	2005-12-07 08:58:59.000000000 -0500
-@@ -0,0 +1,26 @@
-+#include <unistd.h>
-+#include <stdio.h>
-+#include <stdlib.h>
-+#include <selinux/selinux.h>
-+
-+int main(int argc, char **argv) 
-+{
-+	char *buf;
-+	int rc, i;
-+
-+	if (argc < 2) {
-+		fprintf(stderr, "usage:  %s path...\n", argv[0]);
-+		exit(1);
-+	}
-+
-+	for (i = 1; i < argc; i++) {
-+		rc = selinux_trans_to_raw_context(argv[i], &buf);
-+		if (rc < 0) {
-+			fprintf(stderr, "%s:  selinux_trans_to_raw_context(%s) failed\n", argv[0], argv[i]);
-+			exit(2);
-+		}
-+		printf("%s\t%s\t%s\n", argv[i], buf);
-+		freecon(buf);
-+	}
-+	exit(0);
-+}
+diff --exclude-from=exclude -N -u -r nsalibselinux/src/init.c libselinux-1.29.1/src/init.c
+--- nsalibselinux/src/init.c	2005-10-06 12:31:32.000000000 -0400
++++ libselinux-1.29.1/src/init.c	2005-12-13 15:39:22.000000000 -0500
+@@ -118,6 +118,13 @@
+ #ifdef SHARED
+ 	context_translations = 0;
+ 	if (translation_lib_handle) {
++		int (*lib_trans_finish)(void) = NULL;
++
++		lib_trans_finish = dlsym(translation_lib_handle,
++					 "finish_context_translations");
++		if (! dlerror()) 
++			lib_trans_finish();
++		
+ 		dlclose(translation_lib_handle);
+ 		translation_lib_handle = NULL;
+ 	}


Index: libselinux.spec
===================================================================
RCS file: /cvs/dist/rpms/libselinux/devel/libselinux.spec,v
retrieving revision 1.165
retrieving revision 1.166
diff -u -r1.165 -r1.166
--- libselinux.spec	11 Dec 2005 17:26:58 -0000	1.165
+++ libselinux.spec	13 Dec 2005 20:44:36 -0000	1.166
@@ -3,11 +3,11 @@
 Summary: SELinux library and simple utilities
 Name: libselinux
 Version: 1.29.1
-Release: 2
+Release: 3
 License: Public domain (uncopyrighted)
 Group: System Environment/Libraries
 Source: http://www.nsa.gov/selinux/archives/%{name}-%{version}.tgz
-#Patch: libselinux-rhat.patch
+Patch: libselinux-rhat.patch
 
 Requires: libsepol >= %{libsepolver}
 Requires: libsetrans >= %{libsetransver}
@@ -49,9 +49,10 @@
 
 %prep
 %setup -q
-#%patch -p1 -b .rhat
+%patch -p1 -b .rhat
 
 %build
+make clean
 make CFLAGS="-g %{optflags}"
 
 %install
@@ -108,8 +109,9 @@
 %{_libdir}/python2.4/site-packages/selinux.py*
 
 %changelog
-* Sun Dec 11 2005 Dan Walsh <dwalsh at redhat.com> 1.29.1-2
+* Sun Dec 11 2005 Dan Walsh <dwalsh at redhat.com> 1.29.1-3
 - update to latest libsetrans  
+- Fix potential memory leak
 
 * Fri Dec 09 2005 Jesse Keating <jkeating at redhat.com>
 - rebuilt




More information about the fedora-cvs-commits mailing list