[apparmor] [patch] aa.py / ask_the_question - simplify duplicate option prevention
Kshitij Gupta
kgupta8592 at gmail.com
Mon Aug 25 19:29:24 UTC 2014
Hello,
On Sunday, August 24, 2014 04:44:40 PM Christian Boltz wrote:
> Hello,
>
> this patch adds a add_to_options() helper function to aa.py which
> - adds newpath to options if it's not already there
> - returns the updated options and the index of newpath
>
> This removes duplicated code for CMD_GLOB and CMD_GLOBEXT in
> ask_the_question()
>
> It also adds duplicate prevention to CMD_NEW.
>
>
> === modified file 'utils/apparmor/aa.py'
> --- utils/apparmor/aa.py 2014-08-17 16:16:33 +0000
> +++ utils/apparmor/aa.py 2014-08-24 14:33:35 +0000
> @@ -1921,30 +1931,19 @@
> continue
>
> user_globs.append(ans)
> - options.append(ans)
> - default_option = len(options)
> + options, default_option =
> add_to_options(options, ans)
>
> elif ans == 'CMD_GLOB':
> newpath = options[selected].strip()
> if not re_match_include(newpath):
> newpath = glob_path(newpath)
> -
> - if newpath not in options:
> - options.append(newpath)
> - default_option = len(options)
> - else:
> - default_option =
> options.index(newpath) + 1 + options,
> default_option = add_to_options(options, newpath)
>
> elif ans == 'CMD_GLOBEXT':
> newpath = options[selected].strip()
> if not re_match_include(newpath):
> newpath = glob_path_withext(newpath)
> -
> - if newpath not in options:
> - options.append(newpath)
> - default_option = len(options)
> - else:
> - default_option =
> options.index(newpath) + 1 + options,
> default_option = add_to_options(options, newpath)
>
> elif re.search('\d', ans):
> default_option = ans
> @@ -2039,6 +2038,14 @@
> else:
> done = False
>
> +def add_to_options(options, newpath):
> + if newpath not in options:
> + options.append(newpath)
> + default_option = len(options)
> + else:
> + default_option = options.index(newpath) + 1
A slower way would be only keep: default_option = options.index(newpath) + 1
and do away with the else and default_option = len(options) part.
Though its pretty inefficient for half the cases but would it be more readable
(2 lines less to read ;-) )?
> + return (options, default_option)
> +
> def glob_path(newpath):
> """Glob the given file path"""
> if newpath[-1] == '/':
>
>
Thanks for the patch. Looks good in the given context.
Acked-by: Kshitij Gupta <kgupta8592 at gmail.com>.
Regards,
Kshitij Gupta
>
>
> Regards,
>
> Christian Boltz
>
> > [...] if the installation of a stupid package failed, [...]
>
> AFAIK there is no package named `stupid'.
> [> Raphael Schillings and Michael Gross in
> https://bugzilla.novell.com/show_bug.cgi?id=147588]
More information about the AppArmor
mailing list