54 lines
1.8 KiB
Diff
54 lines
1.8 KiB
Diff
From 2fc29ae7971070b27552140174d460dabd35fa0d Mon Sep 17 00:00:00 2001
|
|
From: Petr Lautrbach <lautrbach@redhat.com>
|
|
Date: Tue, 27 Aug 2024 13:28:13 +0200
|
|
Subject: [PATCH] sepolgen-ifgen: allow M4 escaped filenames
|
|
|
|
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>
|
|
Acked-by: James Carter <jwcart2@gmail.com>
|
|
---
|
|
python/sepolgen/src/sepolgen/refparser.py | 7 ++++++-
|
|
1 file changed, 6 insertions(+), 1 deletion(-)
|
|
|
|
diff --git a/python/sepolgen/src/sepolgen/refparser.py b/python/sepolgen/src/sepolgen/refparser.py
|
|
index e261d3f78..c8a3eb54d 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
|