Blob Blame History Raw
diff -up libselinux-2.1.10/src/audit2why.c~ libselinux-2.1.10/src/audit2why.c
--- libselinux-2.1.10/src/audit2why.c~	2012-10-16 13:10:49.836777130 -0400
+++ libselinux-2.1.10/src/audit2why.c	2012-10-16 13:12:44.211844593 -0400
@@ -164,6 +164,9 @@ static PyObject *finish(PyObject *self _
   
 	if (PyArg_ParseTuple(args,(char *)":finish")) {
 		int i = 0;
+		if (! avc)
+			Py_RETURN_NONE;
+
 		for (i = 0; i < boolcnt; i++) {
 			free(boollist[i]->name);
 			free(boollist[i]);
@@ -288,6 +291,10 @@ static int __policy_init(const char *ini
 static PyObject *init(PyObject *self __attribute__((unused)), PyObject *args) {
   int result;
   char *init_path=NULL;
+  if (avc) {
+	  PyErr_SetString( PyExc_RuntimeError, "init called multiple times");
+	  return NULL;
+  }
   if (!PyArg_ParseTuple(args,(char *)"|s:policy_init",&init_path))
     return NULL;
   result = __policy_init(init_path);