[apparmor] [patch] Centralize the 'ruletypes' list

Seth Arnold seth.arnold at canonical.com
Fri Dec 4 01:39:50 UTC 2015


On Thu, Dec 03, 2015 at 09:55:31PM +0100, Christian Boltz wrote:
> Hello,
> 
> having a list of rule types/classes at several places is annoying and
> error-prone. This patch centralizes the list in aa.py.
> 
> This also means ask_the_question() in aa.py will now (in theory) support
> 'change_profile' and 'rlimit'. In practise, that doesn't change anything
> because logparser.py doesn't support change_profile events yet - and
> rlimit doesn't cause any log events.
> 
> Also add some long overdue copyright headers.

Acked-by: Seth Arnold <seth.arnold at canonical.com>

Thanks


> 
> [ 24-centralize-ruletypes.diff ]
> 
> === modified file ./utils/aa-mergeprof
> --- utils/aa-mergeprof  2015-11-19 17:42:26.317879173 +0100
> +++ utils/aa-mergeprof  2015-12-02 22:37:23.198671126 +0100
> @@ -1,6 +1,7 @@
>  #! /usr/bin/env python
>  # ----------------------------------------------------------------------
>  #    Copyright (C) 2013 Kshitij Gupta <kgupta8592 at gmail.com>
> +#    Copyright (C) 2014-2015 Christian Boltz <apparmor at cboltz.de>
>  #
>  #    This program is free software; you can redistribute it and/or
>  #    modify it under the terms of version 2 of the GNU General Public
> @@ -631,7 +632,7 @@
>                              elif re.search('\d', ans):
>                                  default_option = ans
>  
> -            for ruletype in ['capability', 'change_profile', 'network', 'rlimit', 'signal']:
> +            for ruletype in apparmor.aa.ruletypes:
>                  if other.aa[profile][hat].get(ruletype, False): # needed until we have proper profile initialization
>                      for rule_obj in other.aa[profile][hat][ruletype].rules:
>  
> === modified file ./utils/apparmor/aa.py
> --- utils/apparmor/aa.py        2015-11-29 21:05:50.338348194 +0100
> +++ utils/apparmor/aa.py        2015-12-02 22:29:55.825439595 +0100
> @@ -61,6 +61,8 @@
>  from apparmor.rule.signal     import SignalRuleset,    SignalRule
>  from apparmor.rule import parse_modifiers, quote_if_needed
>  
> +ruletypes = ['capability', 'change_profile', 'network', 'rlimit', 'signal']
> +
>  from apparmor.yasti import SendDataToYast, GetDataFromYast, shutdown_yast
>  
>  # setup module translations
> @@ -1677,7 +1679,7 @@
>                              signal_obj = SignalRule(access, signal, peer, log_event=aamode)
>                              log_obj[profile][hat]['signal'].add(signal_obj)
>  
> -                for ruletype in ['capability', 'network', 'signal']:
> +                for ruletype in ruletypes:
>                      # XXX aa-mergeprof also has this code - if you change it, keep aa-mergeprof in sync!
>                      for rule_obj in log_obj[profile][hat][ruletype].rules:
>  
> @@ -2161,8 +2163,6 @@
>      # Allow rules covered by denied rules shouldn't be deleted
>      # only a subset allow rules may actually be denied
>  
> -    ruletypes = ['capability', 'change_profile', 'network', 'rlimit', 'signal']
> -
>      if include.get(incname, False):
>          for rule_type in ruletypes:
>              deleted += profile[rule_type].delete_duplicates(include[incname][incname][rule_type])
> === modified file ./utils/apparmor/cleanprofile.py
> --- utils/apparmor/cleanprofile.py      2015-11-19 17:42:26.317879173 +0100
> +++ utils/apparmor/cleanprofile.py      2015-12-02 22:37:19.298695423 +0100
> @@ -1,5 +1,6 @@
>  # ----------------------------------------------------------------------
>  #    Copyright (C) 2013 Kshitij Gupta <kgupta8592 at gmail.com>
> +#    Copyright (C) 2014-2015 Christian Boltz <apparmor at cboltz.de>
>  #
>  #    This program is free software; you can redistribute it and/or
>  #    modify it under the terms of version 2 of the GNU General Public
> @@ -64,7 +65,7 @@
>                  deleted += apparmor.delete_duplicates(self.other.aa[program][hat], inc)
>  
>              #Clean duplicate rules in other profile
> -            for ruletype in ['capability', 'change_profile', 'network', 'rlimit', 'signal']:
> +            for ruletype in apparmor.ruletypes:
>                  if not self.same_file:
>                      deleted += self.other.aa[program][hat][ruletype].delete_duplicates(self.profile.aa[program][hat][ruletype])
>                  else:
> 
> 
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 473 bytes
Desc: Digital signature
URL: <https://lists.ubuntu.com/archives/apparmor/attachments/20151203/a74415de/attachment.pgp>


More information about the AppArmor mailing list