[apparmor] [patch] Get rid of global variable 'logger'

John Johansen john.johansen at canonical.com
Tue Oct 20 19:44:08 UTC 2015


On 10/20/2015 11:31 AM, Christian Boltz wrote:
> Hello,
> 
> the global variable 'logger' in aa.py is only used by aa-genprof.
> 
> This patch changes aa_genprof to use the (new) logger_path() function,
> and moves the code for finding the logger path to that function.
> 
> Also make the error message more helpful if logger can't be found.
> 
> 
> [ 98-make-logger-non-global.diff ]

acked-by: John Johansen <john.johansen at canonical.com>


> 
> --- utils/aa-genprof    2015-06-25 21:32:37.420831338 +0200
> +++ utils/aa-genprof    2015-10-20 20:06:34.874304017 +0200
> @@ -136,7 +136,7 @@
>          logmark = subprocess.check_output(['date | md5sum'], shell=True)
>          logmark = logmark.decode('ascii').strip()
>          logmark = re.search('^([0-9a-f]+)', logmark).groups()[0]
> -        t=subprocess.call("%s -p kern.warn 'GenProf: %s'"%(apparmor.logger, logmark), shell=True)
> +        t=subprocess.call("%s -p kern.warn 'GenProf: %s'"%(apparmor.logger_path(), logmark), shell=True)
>  
>      else:
>          logmark = last_audit_entry_time()
> --- utils/apparmor/aa.py        2015-10-20 19:43:26.675490318 +0200
> +++ utils/apparmor/aa.py        2015-10-20 20:12:58.447357711 +0200
> @@ -82,7 +82,6 @@
>  repo_cfg = None
>  
>  parser = None
> -logger = None
>  profile_dir = None
>  extra_profile_dir = None
>  ### end our
> @@ -4372,6 +4371,12 @@
>  
>      return None
>  
> +def logger_path():
> +    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!\nPlease make sure %s exists, or update the 'logger' path in logprof.conf." % logger)
> +    return logger
> +
>  ######Initialisations######
>  
>  conf = apparmor.config.Config('ini', CONFDIR)
> @@ -4392,6 +4397,3 @@
>  if not os.path.isfile(parser) or not os.access(parser, os.EX_OK):
>      raise AppArmorException('Can\'t find apparmor_parser')
>  
> -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
> 




More information about the AppArmor mailing list