[apparmor] [patch] aa-mergeprof: move creating the headers for capabilty and network rules inside the loop

Christian Boltz apparmor at cboltz.de
Sun May 24 21:25:45 UTC 2015


Hello,

this patch moves the code to set q.headers, q.functions and q.default 
for network and capability rules inside the "while not done" loop. This 
ensures to always have valid headers (for example, after changing the 
audit qualifier, the severity was "lost" before) and avoids some 
duplicated code.

Also drop a useless "if True:" condition and change the whitespace of
the following lines.


[ 25-mergeprof-move-headers-inside-loop.diff ]

=== modified file utils/aa-mergeprof
--- utils/aa-mergeprof  2015-05-24 22:57:24.925551732 +0200
+++ utils/aa-mergeprof  2015-05-24 23:02:24.519856316 +0200
@@ -635,23 +635,23 @@
                         q = aaui.PromptQuestion()
                         if newincludes:
                             options += list(map(lambda inc: '#include <%s>' % inc, sorted(set(newincludes))))
-                        if True:#options:
-                            options.append(rule_obj.get_clean())
-                            q.options = options
-                            q.selected = default_option - 1
-
-                        q.headers = [_('Profile'), apparmor.aa.combine_name(profile, hat)]
-                        q.headers += rule_obj.logprof_header()
-
-                        severity = rule_obj.severity(sev_db)
-                        if severity != '--':
-                            q.headers += [_('Severity'), severity]
 
-                        q.functions = available_buttons(rule_obj)
-                        q.default = q.functions[0]
+                        options.append(rule_obj.get_clean())
+                        q.options = options
+                        q.selected = default_option - 1
 
                         done = False
                         while not done:
+                            q.headers = [_('Profile'), apparmor.aa.combine_name(profile, hat)]
+                            q.headers += rule_obj.logprof_header()
+
+                            severity = rule_obj.severity(sev_db)
+                            if severity != '--':
+                                q.headers += [_('Severity'), severity]
+
+                            q.functions = available_buttons(rule_obj)
+                            q.default = q.functions[0]
+
                             ans, selected = q.promptUser()
                             if ans == 'CMD_IGNORE_ENTRY':
                                 done = True
@@ -668,13 +668,9 @@
                                     rule_obj.audit = False
                                     rule_obj.raw_rule = None
 
-                                q.functions = available_buttons(rule_obj)
                                 options[len(options) - 1] = rule_obj.get_clean()
                                 q.options = options
 
-                                q.headers = [_('Profile'), apparmor.aa.combine_name(profile, hat)]
-                                q.headers += rule_obj.logprof_header()
-
                             elif ans == 'CMD_ALLOW':
                                 done = True
                                 apparmor.aa.changed[profile] = True



Regards,

Christian Boltz
-- 
Schlagen. Verklagen. Z.B. bei der c't verpfeifen, auf daß es fortan
die Spatzen von den Dächern pfeifen, was für Pfeifen das bei $Firma
sind. *scnr* [David Haller in suse-linux]




More information about the AppArmor mailing list