X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=src%2Ftmpfiles%2Ftmpfiles.c;h=36842898ab3240051bea8c461d05187d7778bfcf;hb=4cf7ea556aa1e74f9b34d4467f36d46a1bb25da3;hp=dde7d33f9ef2c2e8ae6330114d067429df8579f0;hpb=818156512411835a4a7f070e6fec3d7b80e1f629;p=elogind.git diff --git a/src/tmpfiles/tmpfiles.c b/src/tmpfiles/tmpfiles.c index dde7d33f9..36842898a 100644 --- a/src/tmpfiles/tmpfiles.c +++ b/src/tmpfiles/tmpfiles.c @@ -436,8 +436,6 @@ finish: } static int item_set_perms_full(Item *i, const char *path, bool ignore_enoent) { - int r; - /* not using i->path directly because it may be a glob */ if (i->mode_set) if (chmod(path, i->mode) < 0) { @@ -458,8 +456,7 @@ static int item_set_perms_full(Item *i, const char *path, bool ignore_enoent) { } } - r = label_fix(path, false, false); - return r == -ENOENT && ignore_enoent ? 0 : r; + return label_fix(path, ignore_enoent, false); } static int item_set_perms(Item *i, const char *path) { @@ -734,7 +731,7 @@ static int create_item(Item *i) { break; case CREATE_SYMLINK: { - char *x; + _cleanup_free_ char *x = NULL; label_context_set(i->path, S_IFLNK); r = symlink(i->argument, i->path); @@ -754,12 +751,10 @@ static int create_item(Item *i) { } if (!streq(i->argument, x)) { - free(x); log_error("%s is not the right symlinks.", i->path); return -EEXIST; } - free(x); break; } @@ -1346,12 +1341,12 @@ static int parse_argv(int argc, char *argv[]) { break; case ARG_PREFIX: - if (strv_extend(&include_prefixes, optarg) < 0) + if (strv_push(&include_prefixes, optarg) < 0) return log_oom(); break; case ARG_EXCLUDE_PREFIX: - if (strv_extend(&exclude_prefixes, optarg) < 0) + if (strv_push(&exclude_prefixes, optarg) < 0) return log_oom(); break; @@ -1381,7 +1376,7 @@ static int read_config_file(const char *fn, bool ignore_enoent) { assert(fn); - r = search_and_fopen_nulstr(fn, "re", conf_file_dirs, &f); + r = search_and_fopen_nulstr(fn, "re", NULL, conf_file_dirs, &f); if (r < 0) { if (ignore_enoent && r == -ENOENT) return 0; @@ -1511,7 +1506,8 @@ finish: hashmap_free(items); hashmap_free(globs); - strv_free(include_prefixes); + free(include_prefixes); + free(exclude_prefixes); set_free_free(unix_sockets);