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); } -- 1.7.7.3 -- AppArmor mailing list [email protected] Modify settings or unsubscribe at: https://lists.ubuntu.com/mailman/listinfo/apparmor
