The feature file is not being written to the proper location if the parameter --cache-loc= is specified. This results in using the .features file from /etc/apparmor.d/cache or always recompiling policy.
The former case is particularly bad as the .features file in /etc/apparmor.d/cache/ may not correspond to the file in the specified cache location. Signed-off-by: John Johansen <[email protected]> --- === modified file 'parser/parser_main.c' --- parser/parser_main.c 2013-07-29 16:52:18 +0000 +++ parser/parser_main.c 2013-09-23 20:28:42 +0000 @@ -1300,6 +1300,7 @@ { char *cache_features_path = NULL; char *cache_flags = NULL; + int rc; /* Get the match string to determine type of regex support needed */ get_match_string(); @@ -1326,7 +1327,11 @@ * - If cache/.features exists, and does not match flags_string, * force cache reading/writing off. */ - if (asprintf(&cache_features_path, "%s/cache/.features", basedir) == -1) { + if (cacheloc) + rc = asprintf(&cache_features_path, "%s/.features", cacheloc); + else + rc = asprintf(&cache_features_path, "%s/cache/.features", basedir); + if (rc == -1) { perror("asprintf"); exit(1); } -- AppArmor mailing list [email protected] Modify settings or unsubscribe at: https://lists.ubuntu.com/mailman/listinfo/apparmor
