In refpolicy, file_contexts.subs_dist begins with comments:

    # This file can is used to configure base path aliases as in:
    #
    # /aliased_path /original_path_as_configured_in_file_contexts
    #

The first line gets parsed in read_file_equiv even though it is not a
valid path substitution and the second line triggers an exception when
accessing f[1]:

    IndexError: list index out of range

Parse substitutions only for lines which are not comment.

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

diff --git a/python/sepolicy/sepolicy/__init__.py 
b/python/sepolicy/sepolicy/__init__.py
index d41fc6ae1543..bf2494a813c8 100644
--- a/python/sepolicy/sepolicy/__init__.py
+++ b/python/sepolicy/sepolicy/__init__.py
@@ -526,10 +526,10 @@ def find_entrypoint_path(exe, exclude_list=[]):
 def read_file_equiv(edict, fc_path, modify):
     try:
         with open(fc_path, "r") as fd:
-            fc = fd.readlines()
-            for e in fc:
+            for e in fd:
                 f = e.split()
-                edict[f[0]] = {"equiv": f[1], "modify": modify}
+                if f and not f[0].startswith('#'):
+                    edict[f[0]] = {"equiv": f[1], "modify": modify}
     except OSError as e:
         if e.errno != errno.ENOENT:
             raise
-- 
2.14.1

Reply via email to