Hello, the 'ldd' variable in aa.py is only used by get_reqs(), therefore move setting it (based on the configfile) into the function.
get_reqs() doesn't run too often (only called by create_new_profile(), which means aa-genprof or when adding a Px or Cx rule to a non-existing profile). This might even lead to a minor performance win - on average, I'd guess not every aa-logprof run will lead to a completely new profile or child profile. And, more important, we get rid of a global variable. [ 97-make-ldd-non-global.diff ] --- utils/apparmor/aa.py 2015-10-18 22:25:27.421086000 +0200 +++ utils/apparmor/aa.py 2015-10-20 19:29:10.735274914 +0200 @@ -82,7 +82,6 @@ repo_cfg = None parser = None -ldd = None logger = None profile_dir = None extra_profile_dir = None @@ -360,6 +359,11 @@ pattern1 = re.compile('^\s*\S+ => (\/\S+)') pattern2 = re.compile('^\s*(\/\S+)') reqs = [] + + ldd = conf.find_first_file(cfg['settings']['ldd']) or '/usr/bin/ldd' + if not os.path.isfile(ldd) or not os.access(ldd, os.EX_OK): + raise AppArmorException('Can\'t find ldd') + ret, ldd_out = get_output([ldd, file]) if ret == 0: for line in ldd_out: @@ -4388,10 +4392,6 @@ if not os.path.isfile(parser) or not os.access(parser, os.EX_OK): raise AppArmorException('Can\'t find apparmor_parser') -ldd = conf.find_first_file(cfg['settings']['ldd']) or '/usr/bin/ldd' -if not os.path.isfile(ldd) or not os.access(ldd, os.EX_OK): - raise AppArmorException('Can\'t find ldd') - logger = conf.find_first_file(cfg['settings']['logger']) or '/bin/logger' if not os.path.isfile(logger) or not os.access(logger, os.EX_OK): raise AppArmorException('Can\'t find logger') Regards, Christian Boltz -- Wenn ich eine SuSE-CD an ein Schwein binde und dieses trete, laufen KDE & Co. auch ohne RAM recht schnell. [Robin S. Socha in de.comp.os.unix.linux.newusers] -- AppArmor mailing list AppArmor@lists.ubuntu.com Modify settings or unsubscribe at: https://lists.ubuntu.com/mailman/listinfo/apparmor