With create_cache() headed for libapparmor, we can't use the show_cache or write_cache globals. Also, PERROR() cannot be used.
Signed-off-by: Tyler Hicks <[email protected]> --- parser/parser_main.c | 1 + parser/policy_cache.c | 23 +++-------------------- 2 files changed, 4 insertions(+), 20 deletions(-) diff --git a/parser/parser_main.c b/parser/parser_main.c index d10232e..33fb6e1 100644 --- a/parser/parser_main.c +++ b/parser/parser_main.c @@ -914,6 +914,7 @@ int main(int argc, char *argv[]) } else if (!aa_policy_cache_is_valid(policy_cache)) { if (write_cache && cond_clear_cache && aa_policy_cache_create(policy_cache)) { + write_cache = 0; skip_read_cache = 1; } else if (!write_cache || !cond_clear_cache) { if (show_cache) diff --git a/parser/policy_cache.c b/parser/policy_cache.c index 2aff6f6..39a0871 100644 --- a/parser/policy_cache.c +++ b/parser/policy_cache.c @@ -129,26 +129,9 @@ create_file: error: /* does the dir exist? */ - if (stat(policy_cache->path, &stat_file) == -1) { - if (mkdir(policy_cache->path, 0700) == 0) - goto create_file; - if (show_cache) - PERROR(_("Can't create cache directory: %s\n"), - policy_cache->path); - } else if (!S_ISDIR(stat_file.st_mode)) { - if (show_cache) - PERROR(_("File in cache directory location: %s\n"), - policy_cache->path); - } else { - if (show_cache) - PERROR(_("Can't update cache directory: %s\n"), - policy_cache->path); - } - - if (show_cache) - PERROR("Cache write disabled: cannot create %s\n", - policy_cache->features_path); - write_cache = 0; + if (stat(policy_cache->path, &stat_file) == -1 && errno == ENOENT && + mkdir(policy_cache->path, 0700) == 0) + goto create_file; return -1; } -- 2.1.0 -- AppArmor mailing list [email protected] Modify settings or unsubscribe at: https://lists.ubuntu.com/mailman/listinfo/apparmor
