d = fdopendir(fd);
if (!d) {
- close_nointr_nofail(fd);
+ safe_close(fd);
return -errno;
}
p = path_make_absolute(de->d_name, path);
if (!p) {
- close_nointr_nofail(nfd);
+ safe_close(nfd);
return -ENOMEM;
}
int q, cfd;
deleted = false;
- cfd = dup(fd);
+ cfd = fcntl(fd, F_DUPFD_CLOEXEC, 3);
if (cfd < 0) {
r = -errno;
break;
r = q;
} while (deleted);
- close_nointr_nofail(fd);
+ safe_close(fd);
return r;
}
d = fdopendir(fd);
if (!d) {
- close_nointr_nofail(fd);
+ safe_close(fd);
return -errno;
}
p = path_make_absolute(de->d_name, path);
if (!p) {
- close_nointr_nofail(nfd);
+ safe_close(nfd);
return -ENOMEM;
}
return 1;
}
}
-
- return r;
}
static int find_symlinks(
UnitFileScope scope,
bool runtime,
const char *root_dir,
- char *files[],
+ char **files,
bool force,
UnitFileChange **changes,
unsigned *n_changes) {
STRV_FOREACH(i, files) {
_cleanup_free_ char *path = NULL;
- if (!unit_name_is_valid(*i, true)) {
+ if (!unit_name_is_valid(*i, TEMPLATE_VALID)) {
if (r == 0)
r = -EINVAL;
continue;
UnitFileScope scope,
bool runtime,
const char *root_dir,
- char *files[],
+ char **files,
UnitFileChange **changes,
unsigned *n_changes) {
STRV_FOREACH(i, files) {
char *path;
- if (!unit_name_is_valid(*i, true)) {
+ if (!unit_name_is_valid(*i, TEMPLATE_VALID)) {
if (r == 0)
r = -EINVAL;
continue;
UnitFileScope scope,
bool runtime,
const char *root_dir,
- char *files[],
+ char **files,
bool force,
UnitFileChange **changes,
unsigned *n_changes) {
fn = basename(*i);
if (!path_is_absolute(*i) ||
- !unit_name_is_valid(fn, true)) {
+ !unit_name_is_valid(fn, TEMPLATE_VALID)) {
if (r == 0)
r = -EINVAL;
continue;
if (!name)
name = basename(path);
- if (!unit_name_is_valid(name, true))
+ if (!unit_name_is_valid(name, TEMPLATE_VALID))
return -EINVAL;
if (hashmap_get(c->have_installed, name) ||
f = fdopen(fd, "re");
if (!f) {
- close_nointr_nofail(fd);
+ safe_close(fd);
return -ENOMEM;
}
return r;
return
- strv_length(info->aliases) +
- strv_length(info->wanted_by) +
- strv_length(info->required_by);
+ (int) strv_length(info->aliases) +
+ (int) strv_length(info->wanted_by) +
+ (int) strv_length(info->required_by);
}
static int unit_file_search(
if (r >= 0)
r =
- strv_length(i->aliases) +
- strv_length(i->wanted_by) +
- strv_length(i->required_by);
+ (int) strv_length(i->aliases) +
+ (int) strv_length(i->wanted_by) +
+ (int) strv_length(i->required_by);
return r;
}
if (!force)
return -EEXIST;
- unlink(new_path);
+ r = unlink(new_path);
+ if (r < 0 && errno != ENOENT)
+ return -errno;
if (symlink(old_path, new_path) >= 0) {
add_file_change(changes, n_changes, UNIT_FILE_UNLINK, new_path, NULL);
if (q < 0)
return q;
- if (!unit_name_is_valid(dst, true)) {
+ if (!unit_name_is_valid(dst, TEMPLATE_VALID)) {
r = -EINVAL;
continue;
}
if (q < 0)
return q;
- if (!unit_name_is_valid(dst, true)) {
+ if (!unit_name_is_valid(dst, TEMPLATE_VALID)) {
r = -EINVAL;
continue;
}
UnitFileScope scope,
bool runtime,
const char *root_dir,
- char *files[],
+ char **files,
bool force,
UnitFileChange **changes,
unsigned *n_changes) {
supposed to be created, not the ones actually created. This is
useful to determine whether the passed files had any
installation data at all. */
- r = install_context_apply(&c, &paths, config_path, root_dir, force, changes, n_changes);
- return r;
+
+ return install_context_apply(&c, &paths, config_path, root_dir, force, changes, n_changes);
}
int unit_file_disable(
UnitFileScope scope,
bool runtime,
const char *root_dir,
- char *files[],
+ char **files,
UnitFileChange **changes,
unsigned *n_changes) {
UnitFileScope scope,
bool runtime,
const char *root_dir,
- char *files[],
+ char **files,
bool force,
UnitFileChange **changes,
unsigned *n_changes) {
if (root_dir && scope != UNIT_FILE_SYSTEM)
return -EINVAL;
- if (!unit_name_is_valid(name, true))
+ if (!unit_name_is_valid(name, TEMPLATE_VALID))
return -EINVAL;
r = lookup_paths_init_from_scope(&paths, scope);
UnitFileScope scope,
bool runtime,
const char *root_dir,
- char *files[],
+ char **files,
bool force,
UnitFileChange **changes,
unsigned *n_changes) {
STRV_FOREACH(i, files) {
- if (!unit_name_is_valid(*i, true))
+ if (!unit_name_is_valid(*i, TEMPLATE_VALID))
return -EINVAL;
r = unit_file_query_preset(scope, *i);
if (ignore_file(de->d_name))
continue;
- if (!unit_name_is_valid(de->d_name, true))
+ if (!unit_name_is_valid(de->d_name, TEMPLATE_VALID))
continue;
if (hashmap_get(h, de->d_name))