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

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