Message ID | 20240827113150.1843304-1-lautrbach@redhat.com (mailing list archive) |
---|---|
State | New |
Delegated to: | Petr Lautrbach |
Headers | show |
Series | [v2] sepolgen-ifgen: allow M4 escaped filenames | expand |
diff --git a/python/sepolgen/src/sepolgen/refparser.py b/python/sepolgen/src/sepolgen/refparser.py index e261d3f78f87..c8a3eb54d679 100644 --- a/python/sepolgen/src/sepolgen/refparser.py +++ b/python/sepolgen/src/sepolgen/refparser.py @@ -486,7 +486,7 @@ def p_interface_call_param(p): | nested_id_set | TRUE | FALSE - | FILENAME + | quoted_filename ''' # Intentionally let single identifiers pass through # List means set, non-list identifier @@ -1027,6 +1027,11 @@ def p_optional_semi(p): | empty''' pass +def p_quoted_filename(p): + '''quoted_filename : TICK quoted_filename SQUOTE + | FILENAME + ''' + p[0] = p[1] # # Interface to the parser
When a file name in type transition rule used in an interface is same as a keyword, it needs to be M4 escaped so that the keyword is not expanded by M4, e.g. - filetrans_pattern($1, virt_var_run_t, virtinterfaced_var_run_t, dir, "interface") + filetrans_pattern($1, virt_var_run_t, virtinterfaced_var_run_t, dir, ``"interface"'') But sepolgen-ifgen could not parse such string: # sepolgen-ifgen Illegal character '`' This change allows M4 escaping inside quoted strings and fixed described problem. https://bugzilla.redhat.com/show_bug.cgi?id=2254206 Signed-off-by: Petr Lautrbach <lautrbach@redhat.com> --- change to v1: - use ``"..."'' instead of "``..''" - sugested in https://github.com/SELinuxProject/selint/pull/291 by @cgzones - controls right number of openning and closing quotes python/sepolgen/src/sepolgen/refparser.py | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-)