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 <[email protected]>
> Sender: [email protected]
> Date: Fri,  6 Jan 2012 09:34:08 
> To: <[email protected]>
> 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 <[email protected]>
> ---
>  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);
>               }


-- 
AppArmor mailing list
[email protected]
Modify settings or unsubscribe at: 
https://lists.ubuntu.com/mailman/listinfo/apparmor

Reply via email to