On a system without any file context customizations, "sepolicy gui"
fails to load because it tries to read a non-existent file:

    FileNotFoundError: [Errno 2] No such file or directory:
    '/etc/selinux/refpolicy-git/contexts/files/file_contexts.local'

Once this issue is fixed, another one is triggered:

    FileNotFoundError: [Errno 2] No such file or directory:
    '/etc/selinux/refpolicy-git/contexts/files/file_contexts.subs

Use os.path.exists() to prevent trying to open non-existent files.

Signed-off-by: Nicolas Iooss <[email protected]>
---
 python/sepolicy/sepolicy/__init__.py | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/python/sepolicy/sepolicy/__init__.py 
b/python/sepolicy/sepolicy/__init__.py
index 03742346caf0..14d2ad634d7d 100644
--- a/python/sepolicy/sepolicy/__init__.py
+++ b/python/sepolicy/sepolicy/__init__.py
@@ -523,6 +523,8 @@ def find_entrypoint_path(exe, exclude_list=[]):
 
 
 def read_file_equiv(edict, fc_path, modify):
+    if not os.path.exists(fc_path):
+        return edict
     fd = open(fc_path, "r")
     fc = fd.readlines()
     fd.close()
@@ -555,6 +557,8 @@ def 
get_local_file_paths(fc_path=selinux.selinux_file_context_path()):
     if local_files:
         return local_files
     local_files = []
+    if not os.path.exists(fc_path + ".local"):
+        return []
     fd = open(fc_path + ".local", "r")
     fc = fd.readlines()
     fd.close()
-- 
2.14.1

Reply via email to