[apparmor] [PATCH 1/2] Add an option to allow setting the cache's location.

John Johansen john.johansen at canonical.com
Fri Jan 6 18:54:02 UTC 2012


On 01/06/2012 10:40 AM, Seth Arnold wrote:
> I think this will perform badly if the cache_loc isn't set somewhere.
Indeed that part of the patch seems to have been dropped :-/

 It also seems strange to append /cache/ to the end of the string -- if it is configured for /run/apparmor_cache it'll expand to /run/apparmor_cache/cache. I think, if specified, it should be the exact directory used.
> 
yeah that makes sense


> Thanks!
> -----Original Message-----
> From: John Johansen <john.johansen at canonical.com>
> Sender: apparmor-bounces at lists.ubuntu.com
> Date: Fri,  6 Jan 2012 09:34:08 
> To: <apparmor at lists.ubuntu.com>
> Subject: [apparmor] [PATCH 1/2] Add an option to allow setting the cache's
> 	location.
> 
> Currently the cache location is fixed and links are needed to move it.
> Add an option that can be set in the apparmor_parser.conf file so distros
> can locate the cache where ever makes sense for them.
> 
> Signed-off-by: John Johansen <john.johansen at canonical.com>
> ---
>  parser/parser_main.c |    8 +++++++-
>  1 files changed, 7 insertions(+), 1 deletions(-)
> 
> diff --git a/parser/parser_main.c b/parser/parser_main.c
> index 721582d..1aef616 100644
> --- a/parser/parser_main.c
> +++ b/parser/parser_main.c
> @@ -76,6 +76,7 @@ struct timespec mru_tstamp;
>  
>  char *match_string = NULL;
>  char *flags_string = NULL;
> +char *cacheloc = NULL;
>  
>  /* per-profile settings */
>  int force_complain = 0;
> @@ -106,6 +107,7 @@ struct option long_options[] = {
>  	{"skip-read-cache",	0, 0, 'T'},
>  	{"write-cache",		0, 0, 'W'},
>  	{"show-cache",		0, 0, 'k'},
> +	{"cache-loc",		1, 0, 'L'},
>  	{"debug",		0, 0, 'd'},
>  	{"dump",		1, 0, 'D'},
>  	{"Dump",		1, 0, 'D'},
> @@ -147,6 +149,7 @@ static void display_usage(char *command)
>  	       "-K, --skip-cache	Do not attempt to load or save cached profiles\n"
>  	       "-T, --skip-read-cache	Do not attempt to load cached profiles\n"
>  	       "-W, --write-cache	Save cached profile (force with -T)\n"
> +	       "-L, --cache-loc n	Set the location of the profile cache\n"
>  	       "-q, --quiet		Don't emit warnings\n"
>  	       "-v, --verbose		Show profile names as they load\n"
>  	       "-Q, --skip-kernel-load	Do everything except loading into kernel\n"
> @@ -522,6 +525,9 @@ static int process_arg(int c, char *optarg)
>  	case 'T':
>  		skip_read_cache = 1;
>  		break;
> +	case 'L':
> +		cacheloc = strdup(optarg);
> +		break;
>  	case 'Q':
>  		kernel_load = 0;
>  		break;
> @@ -928,7 +934,7 @@ int process_profile(int option, char *profilename)
>  	 */
>  	if ((profilename && option != OPTION_REMOVE) && !force_complain &&
>  	    !skip_cache) {
> -		if (asprintf(&cachename, "%s/%s/%s", basedir, "cache", basename)<0) {
> +		if (asprintf(&cachename, "%s/%s/%s", cacheloc, "cache", basename)<0) {
>  			perror("asprintf");
>  			exit(1);
>  		}




More information about the AppArmor mailing list