From 90cff8243e69f6c30f598ee94447b017a7dd1739 Mon Sep 17 00:00:00 2001 From: Nicolas Iooss Date: Sat, 24 Oct 2015 20:43:27 +0200 Subject: [PATCH] sepolgen: Reset line numbers when parsing files When running sepolgen-ifgen on refpolicy (git master branch), the following messages show up: /usr/share/selinux/refpolicy/include/kernel/selinux.if: Syntax error on line 3369 gen_context [type=GEN_CONTEXT] /usr/share/selinux/refpolicy/include/system/init.if: Syntax error on line 188379 ' [type=SQUOTE] /usr/share/selinux/refpolicy/include/system/init.if: Syntax error on line 188385 ' [type=SQUOTE] The line numbers are incorrect because the lineno member of the lexer object is not resetted after each file has been processed. After fixing this, the messages are nicer: /usr/share/selinux/refpolicy/include/kernel/selinux.if: Syntax error on line 43 gen_context [type=GEN_CONTEXT] /usr/share/selinux/refpolicy/include/system/init.if: Syntax error on line 1416 ' [type=SQUOTE] /usr/share/selinux/refpolicy/include/system/init.if: Syntax error on line 1422 ' [type=SQUOTE] As line 43 of kernel/selinux.if contains a genfscon statement with a gen_context component, the reported line numbers are now correct. Signed-off-by: Nicolas Iooss --- sepolgen/src/sepolgen/refparser.py | 1 + 1 file changed, 1 insertion(+) diff --git a/sepolgen/src/sepolgen/refparser.py b/sepolgen/src/sepolgen/refparser.py index b50112cc..3132c6fe 100644 --- a/sepolgen/src/sepolgen/refparser.py +++ b/sepolgen/src/sepolgen/refparser.py @@ -1003,6 +1003,7 @@ def parse(text, module=None, support=None, debug=False): create_globals(module, support, debug) global error, parser, lexer, success + lexer.lineno = 1 success = True try: