Blame SOURCES/0010-sepolicy-Drop-old-interface-file_type_is_executable-.patch

9bbebd
From ef0f54ffc6d691d10e66a0793204edd159cd45d0 Mon Sep 17 00:00:00 2001
9bbebd
From: Petr Lautrbach <plautrba@redhat.com>
9bbebd
Date: Mon, 27 Feb 2017 17:12:39 +0100
9bbebd
Subject: [PATCH] sepolicy: Drop old interface file_type_is_executable(f) and
9bbebd
 file_type_is_entrypoint(f)
9bbebd
9bbebd
- use direct queries
9bbebd
- load exec_types and entry_types only once
9bbebd
---
9bbebd
 python/sepolicy/sepolicy/manpage.py | 22 ++++++++++++++++++++--
9bbebd
 1 file changed, 20 insertions(+), 2 deletions(-)
9bbebd
9bbebd
diff --git a/python/sepolicy/sepolicy/manpage.py b/python/sepolicy/sepolicy/manpage.py
9bbebd
index de8184d8..f8a94fc0 100755
9bbebd
--- a/python/sepolicy/sepolicy/manpage.py
9bbebd
+++ b/python/sepolicy/sepolicy/manpage.py
9bbebd
@@ -125,8 +125,24 @@ def gen_domains():
9bbebd
     domains.sort()
9bbebd
     return domains
9bbebd
 
9bbebd
-types = None
9bbebd
 
9bbebd
+exec_types = None
9bbebd
+
9bbebd
+def _gen_exec_types():
9bbebd
+    global exec_types
9bbebd
+    if exec_types is None:
9bbebd
+        exec_types = next(sepolicy.info(sepolicy.ATTRIBUTE, "exec_type"))["types"]
9bbebd
+    return exec_types
9bbebd
+
9bbebd
+entry_types = None
9bbebd
+
9bbebd
+def _gen_entry_types():
9bbebd
+    global entry_types
9bbebd
+    if entry_types is None:
9bbebd
+        entry_types = next(sepolicy.info(sepolicy.ATTRIBUTE, "entry_type"))["types"]
9bbebd
+    return entry_types
9bbebd
+
9bbebd
+types = None
9bbebd
 
9bbebd
 def _gen_types():
9bbebd
     global types
9bbebd
@@ -372,6 +388,8 @@ class ManPage:
9bbebd
         self.all_file_types = sepolicy.get_all_file_types()
9bbebd
         self.role_allows = sepolicy.get_all_role_allows()
9bbebd
         self.types = _gen_types()
9bbebd
+        self.exec_types = _gen_exec_types()
9bbebd
+        self.entry_types = _gen_entry_types()
9bbebd
 
9bbebd
         if self.source_files:
9bbebd
             self.fcpath = self.root + "file_contexts"
9bbebd
@@ -689,7 +707,7 @@ Default Defined Ports:""")
9bbebd
         for f in self.all_file_types:
9bbebd
             if f.startswith(self.domainname):
9bbebd
                 flist.append(f)
9bbebd
-                if not file_type_is_executable(f) or not file_type_is_entrypoint(f):
9bbebd
+                if not f in self.exec_types or not f in self.entry_types:
9bbebd
                     flist_non_exec.append(f)
9bbebd
                 if f in self.fcdict:
9bbebd
                     mpaths = mpaths + self.fcdict[f]["regex"]
9bbebd
-- 
9bbebd
2.21.0
9bbebd