diff --git a/setools-python.patch b/setools-python.patch index bcbcb11..ceca4af 100644 --- a/setools-python.patch +++ b/setools-python.patch @@ -1463,8 +1463,8 @@ diff -up setools-3.3.7/python/setools/Makefile.in.python setools-3.3.7/python/se +.NOEXPORT: diff -up setools-3.3.7/python/setools/seinfo.c.python setools-3.3.7/python/setools/seinfo.c --- setools-3.3.7/python/setools/seinfo.c.python 2010-07-30 15:02:10.000000000 -0400 -+++ setools-3.3.7/python/setools/seinfo.c 2010-08-03 16:01:06.000000000 -0400 -@@ -0,0 +1,744 @@ ++++ setools-3.3.7/python/setools/seinfo.c 2010-08-03 16:49:15.000000000 -0400 +@@ -0,0 +1,754 @@ +/** + * @file + * Command line tool to search TE rules. @@ -1536,7 +1536,7 @@ diff -up setools-3.3.7/python/setools/seinfo.c.python setools-3.3.7/python/setoo +{ + int retval = -1; + PyObject *dict = PyDict_New(); -+ const qpol_type_t *attr_datum = NULL; ++ const qpol_type_t *atotr_datum = NULL; + qpol_iterator_t *iter = NULL; + const char *attr_name = NULL, *type_name = NULL; + qpol_policy_t *q = apol_policy_get_qpol(policydb); @@ -1950,11 +1950,14 @@ diff -up setools-3.3.7/python/setools/seinfo.c.python setools-3.3.7/python/setoo + const qpol_portcon_t *portcon = NULL; + qpol_iterator_t *iter = NULL; + uint16_t low_port, high_port; -+ uint8_t ocon_proto, proto = 0; ++ uint8_t ocon_proto; + qpol_policy_t *q = apol_policy_get_qpol(policydb); + const qpol_context_t *ctxt = NULL; + const char *proto_str; + PyObject *dict; ++ const char *type = NULL; ++ PyObject *obj = NULL; ++ apol_context_t *c = NULL; + + if (qpol_policy_get_portcon_iter(q, &iter)) + goto cleanup; @@ -1977,7 +1980,7 @@ diff -up setools-3.3.7/python/setools/seinfo.c.python setools-3.3.7/python/setoo + (ocon_proto != IPPROTO_UDP)) + goto cleanup; + -+ if (qpol_portcon_get_context(q, portcon,&ctxt)) { ++ if (qpol_portcon_get_context(q, portcon, &ctxt)) { + PyErr_SetString(PyExc_RuntimeError, "Could not get for port context."); + goto cleanup; + } @@ -1987,8 +1990,22 @@ diff -up setools-3.3.7/python/setools/seinfo.c.python setools-3.3.7/python/setoo + goto cleanup; + } + ++ if ((c = apol_context_create_from_qpol_context(policydb, ctxt)) == NULL) { ++ goto cleanup; ++ } ++ ++ if((type = apol_context_get_type(c)) == NULL) { ++ apol_context_destroy(&c); ++ goto cleanup; ++ } ++ + dict = PyDict_New(); -+ PyObject *obj = PyString_FromString(proto_str); ++ obj = PyString_FromString(type); ++ PyDict_SetItemString(dict, "type", obj); ++ Py_DECREF(obj); ++ apol_context_destroy(&c); ++ ++ obj = PyString_FromString(proto_str); + PyDict_SetItemString(dict, "protocol", obj); + Py_DECREF(obj); + @@ -2000,20 +2017,13 @@ diff -up setools-3.3.7/python/setools/seinfo.c.python setools-3.3.7/python/setoo + PyDict_SetItemString(dict, "low", obj); + Py_DECREF(obj); + -+ char *tmp = apol_qpol_context_render(policydb, ctxt); -+ obj = PyString_FromString(tmp); -+ free(tmp); -+ PyDict_SetItemString(dict, "type", obj); -+ Py_DECREF(obj); -+ + PyList_Append(list, dict); -+ Py_DECREF(obj); ++ Py_DECREF(dict); + } -+ qpol_iterator_destroy(&iter); -+ + retval = 0; + cleanup: + qpol_iterator_destroy(&iter); ++ + if (retval) { + Py_DECREF(list); + PyErr_SetString(PyExc_RuntimeError,strerror(errno));