[apparmor] [patch] Move check_and_split_list() to BaseRule
Seth Arnold
seth.arnold at canonical.com
Fri Dec 4 01:40:15 UTC 2015
On Thu, Dec 03, 2015 at 10:12:06PM +0100, Christian Boltz wrote:
> Hello,
>
> $subject.
>
> We'll need this function in more rule classes ;-)
>
Acked-by: Seth Arnold <seth.arnold at canonical.com>
Thanks
> [ 25-move-check_and_split_list-to-baserule.diff ]
>
> === modified file ./utils/apparmor/rule/__init__.py
> --- utils/apparmor/rule/__init__.py 2015-11-19 17:42:26.325879118 +0100
> +++ utils/apparmor/rule/__init__.py 2015-11-23 21:43:24.431985210 +0100
> @@ -343,6 +343,29 @@
> raise NotImplementedError("get_glob_ext is not available for this rule type!")
>
>
> +def check_and_split_list(lst, allowed_keywords, all_obj, classname, keyword_name):
> + '''check if lst is all_obj or contains only items listed in allowed_keywords'''
> +
> + if lst == all_obj:
> + return None, True, None
> + elif type(lst) == str:
> + result_list = {lst}
> + elif (type(lst) == list or type(lst) == tuple) and len(lst) > 0:
> + result_list = set(lst)
> + else:
> + raise AppArmorBug('Passed unknown %(type)s object to %(classname)s: %(unknown_object)s' %
> + {'type': type(lst), 'classname': classname, 'unknown_object': str(lst)})
> +
> + unknown_items = set()
> + for item in result_list:
> + if not item.strip():
> + raise AppArmorBug('Passed empty %(keyword_name)s to %(classname)s' %
> + {'keyword_name': keyword_name, 'classname': classname})
> + if item not in allowed_keywords:
> + unknown_items.add(item)
> +
> + return result_list, False, unknown_items
> +
> def parse_comment(matches):
> '''returns the comment (with a leading space) from the matches object'''
> comment = ''
> === modified file ./utils/apparmor/rule/signal.py
> --- utils/apparmor/rule/signal.py 2015-11-19 18:17:06.944324889 +0100
> +++ utils/apparmor/rule/signal.py 2015-11-23 21:43:00.892169194 +0100
> @@ -17,7 +17,7 @@
> from apparmor.aare import AARE
> from apparmor.regex import RE_PROFILE_SIGNAL, RE_PROFILE_NAME
> from apparmor.common import AppArmorBug, AppArmorException
> -from apparmor.rule import BaseRule, BaseRuleset, parse_modifiers, quote_if_needed
> +from apparmor.rule import BaseRule, BaseRuleset, check_and_split_list, parse_modifiers, quote_if_needed
>
> # setup module translations
> from apparmor.translations import init_translation
> @@ -274,27 +274,3 @@
> # XXX only remove one part, not all
> return 'signal,'
>
> -
> -def check_and_split_list(lst, allowed_keywords, all_obj, classname, keyword_name):
> - '''check if lst is all_obj or contains only items listed in allowed_keywords'''
> -
> - if lst == all_obj:
> - return None, True, None
> - elif type(lst) == str:
> - result_list = {lst}
> - elif (type(lst) == list or type(lst) == tuple) and len(lst) > 0:
> - result_list = set(lst)
> - else:
> - raise AppArmorBug('Passed unknown %(type)s object to %(classname)s: %(unknown_object)s' %
> - {'type': type(lst), 'classname': classname, 'unknown_object': str(lst)})
> -
> - unknown_items = set()
> - for item in result_list:
> - if not item.strip():
> - raise AppArmorBug('Passed empty %(keyword_name)s to %(classname)s' %
> - {'keyword_name': keyword_name, 'classname': classname})
> - if item not in allowed_keywords:
> - unknown_items.add(item)
> -
> - return result_list, False, unknown_items
> -
>
>
-------------- 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/c9d99526/attachment.pgp>
More information about the AppArmor
mailing list