[apparmor] [patch] Change RE_PROFILE_START to accept variables
Christian Boltz
apparmor at cboltz.de
Sun Jul 12 13:42:49 UTC 2015
Hello,
profile name and attachment can contain variables, so the
RE_PROFILE_START regex should accept it.
(Note: the variable content isn't checked.)
Also add some tests with variables.
[ 72-profile-name-variables.diff ]
diff -ru --exclude .bzr/ ../HEAD-patches-applied/utils/apparmor/regex.py ./utils/apparmor/regex.py
--- utils/apparmor/regex.py 2015-07-09 22:45:43.988215971 +0200
+++ ./utils/apparmor/regex.py 2015-07-12 15:33:48.267111203 +0200
@@ -66,9 +66,9 @@
RE_PROFILE_START = re.compile(
'^(?P<leadingspace>\s*)' +
'(' +
- RE_PROFILE_PATH % 'plainprofile' + # just a path
+ RE_PROFILE_PATH_OR_VAR % 'plainprofile' + # just a path
'|' + # or
- '(' + 'profile' + '\s+' + RE_PROFILE_NAME % 'namedprofile' + '(\s+' + RE_PROFILE_PATH % 'attachment' + ')?' + ')' + # 'profile', profile name, optionally attachment
+ '(' + 'profile' + '\s+' + RE_PROFILE_NAME % 'namedprofile' + '(\s+' + RE_PROFILE_PATH_OR_VAR % 'attachment' + ')?' + ')' + # 'profile', profile name, optionally attachment
')' +
'\s+((flags\s*=\s*)?\((?P<flags>.+)\)\s*)?\{' +
RE_EOL)
diff -ru --exclude .bzr/ ../HEAD-patches-applied/utils/test/test-regex_matches.py ./utils/test/test-regex_matches.py
--- utils/test/test-regex_matches.py 2015-07-12 15:27:50.882030208 +0200
+++ ./utils/test/test-regex_matches.py 2015-07-12 15:36:02.317509200 +0200
@@ -418,6 +418,11 @@
(' /foo flags=(complain) {', { 'plainprofile': '/foo', 'namedprofile': None, 'attachment': None, 'flags': 'complain', 'comment': None }),
(' /foo (complain) { # x', { 'plainprofile': '/foo', 'namedprofile': None, 'attachment': None, 'flags': 'complain', 'comment': '# x'}),
(' /foo flags = ( complain ){#',{ 'plainprofile': '/foo', 'namedprofile': None, 'attachment': None, 'flags': ' complain ', 'comment': '#'}),
+ (' @{foo} {', { 'plainprofile': '@{foo}', 'namedprofile': None, 'attachment': None, 'flags': None, 'comment': None }),
+ (' profile @{foo} {', { 'plainprofile': None, 'namedprofile': '@{foo}', 'attachment': None, 'flags': None, 'comment': None }),
+ (' profile @{foo} /bar {', { 'plainprofile': None, 'namedprofile': '@{foo}', 'attachment': '/bar', 'flags': None, 'comment': None }),
+ (' profile foo @{bar} {', { 'plainprofile': None, 'namedprofile': 'foo', 'attachment': '@{bar}', 'flags': None, 'comment': None }),
+ (' profile @{foo} @{bar} {', { 'plainprofile': None, 'namedprofile': '@{foo}', 'attachment': '@{bar}', 'flags': None, 'comment': None }),
(' /foo {', { 'plainprofile': '/foo', 'namedprofile': None, 'leadingspace': ' ' }),
('/foo {', { 'plainprofile': '/foo', 'namedprofile': None, 'leadingspace': '' }),
@@ -445,6 +450,11 @@
('/foo {', { 'profile': '/foo', 'plainprofile': '/foo', 'namedprofile': None, 'leadingspace': None }),
(' profile foo {', { 'profile': 'foo', 'plainprofile': None, 'namedprofile': 'foo', 'leadingspace': ' ' }),
('profile foo {', { 'profile': 'foo', 'plainprofile': None, 'namedprofile': 'foo', 'leadingspace': None }),
+ (' @{foo} {', { 'profile': '@{foo}', 'plainprofile': '@{foo}', 'namedprofile': None, 'attachment': None, 'flags': None, 'comment': None }),
+ (' profile @{foo} {', { 'profile': '@{foo}', 'plainprofile': None, 'namedprofile': '@{foo}', 'attachment': None, 'flags': None, 'comment': None }),
+ (' profile @{foo} /bar {', { 'profile': '@{foo}', 'plainprofile': None, 'namedprofile': '@{foo}', 'attachment': '/bar', 'flags': None, 'comment': None }),
+ (' profile foo @{bar} {', { 'profile': 'foo', 'plainprofile': None, 'namedprofile': 'foo', 'attachment': '@{bar}', 'flags': None, 'comment': None }),
+ (' profile @{foo} @{bar} {', { 'profile': '@{foo}', 'plainprofile': None, 'namedprofile': '@{foo}', 'attachment': '@{bar}', 'flags': None, 'comment': None }),
]
def _run_test(self, line, expected):
Regards,
Christian Boltz
--
Vielleicht habe ich ja Glück und fang mir eine tödliche Krankheit ein,
dann kann ich das Rauchen wieder anfangen. [Ratti in fontlinge-devel]
More information about the AppArmor
mailing list