mirror of
https://github.com/systemd/systemd.git
synced 2024-12-25 01:34:28 +03:00
tree-wide: replace strjoin() with path_join()
This commit is contained in:
parent
f9dc94408d
commit
657ee2d82b
@ -115,11 +115,11 @@ int block_get_originating(dev_t dt, dev_t *ret) {
|
||||
* setups, however, only if both partitions are on the same physical device. Hence, let's
|
||||
* verify this. */
|
||||
|
||||
u = strjoin(p, "/", de->d_name, "/../dev");
|
||||
u = path_join(p, de->d_name, "../dev");
|
||||
if (!u)
|
||||
return -ENOMEM;
|
||||
|
||||
v = strjoin(p, "/", found->d_name, "/../dev");
|
||||
v = path_join(p, found->d_name, "../dev");
|
||||
if (!v)
|
||||
return -ENOMEM;
|
||||
|
||||
|
@ -1530,7 +1530,7 @@ static int subvol_snapshot_children(
|
||||
if (old_child_fd < 0)
|
||||
return -errno;
|
||||
|
||||
np = strjoin(subvolume, "/", ino_args.name);
|
||||
np = path_join(subvolume, ino_args.name);
|
||||
if (!np)
|
||||
return -ENOMEM;
|
||||
|
||||
|
@ -348,7 +348,7 @@ int cg_kill_recursive(
|
||||
while ((r = cg_read_subgroup(d, &fn)) > 0) {
|
||||
_cleanup_free_ char *p = NULL;
|
||||
|
||||
p = strjoin(path, "/", fn);
|
||||
p = path_join(path, fn);
|
||||
free(fn);
|
||||
if (!p)
|
||||
return -ENOMEM;
|
||||
@ -482,7 +482,7 @@ int cg_migrate_recursive(
|
||||
while ((r = cg_read_subgroup(d, &fn)) > 0) {
|
||||
_cleanup_free_ char *p = NULL;
|
||||
|
||||
p = strjoin(pfrom, "/", fn);
|
||||
p = path_join(pfrom, fn);
|
||||
free(fn);
|
||||
if (!p)
|
||||
return -ENOMEM;
|
||||
@ -570,13 +570,13 @@ static int join_path_legacy(const char *controller, const char *path, const char
|
||||
dn = controller_to_dirname(controller);
|
||||
|
||||
if (isempty(path) && isempty(suffix))
|
||||
t = strappend("/sys/fs/cgroup/", dn);
|
||||
t = path_join("/sys/fs/cgroup", dn);
|
||||
else if (isempty(path))
|
||||
t = strjoin("/sys/fs/cgroup/", dn, "/", suffix);
|
||||
t = path_join("/sys/fs/cgroup", dn, suffix);
|
||||
else if (isempty(suffix))
|
||||
t = strjoin("/sys/fs/cgroup/", dn, "/", path);
|
||||
t = path_join("/sys/fs/cgroup", dn, path);
|
||||
else
|
||||
t = strjoin("/sys/fs/cgroup/", dn, "/", path, "/", suffix);
|
||||
t = path_join("/sys/fs/cgroup", dn, path, suffix);
|
||||
if (!t)
|
||||
return -ENOMEM;
|
||||
|
||||
@ -592,11 +592,11 @@ static int join_path_unified(const char *path, const char *suffix, char **fs) {
|
||||
if (isempty(path) && isempty(suffix))
|
||||
t = strdup("/sys/fs/cgroup");
|
||||
else if (isempty(path))
|
||||
t = strappend("/sys/fs/cgroup/", suffix);
|
||||
t = path_join("/sys/fs/cgroup", suffix);
|
||||
else if (isempty(suffix))
|
||||
t = strappend("/sys/fs/cgroup/", path);
|
||||
t = path_join("/sys/fs/cgroup", path);
|
||||
else
|
||||
t = strjoin("/sys/fs/cgroup/", path, "/", suffix);
|
||||
t = path_join("/sys/fs/cgroup", path, suffix);
|
||||
if (!t)
|
||||
return -ENOMEM;
|
||||
|
||||
@ -623,7 +623,7 @@ int cg_get_path(const char *controller, const char *path, const char *suffix, ch
|
||||
else if (!path)
|
||||
t = strdup(suffix);
|
||||
else
|
||||
t = strjoin(path, "/", suffix);
|
||||
t = path_join(path, suffix);
|
||||
if (!t)
|
||||
return -ENOMEM;
|
||||
|
||||
@ -1227,7 +1227,7 @@ int cg_is_empty_recursive(const char *controller, const char *path) {
|
||||
while ((r = cg_read_subgroup(d, &fn)) > 0) {
|
||||
_cleanup_free_ char *p = NULL;
|
||||
|
||||
p = strjoin(path, "/", fn);
|
||||
p = path_join(path, fn);
|
||||
free(fn);
|
||||
if (!p)
|
||||
return -ENOMEM;
|
||||
|
@ -115,7 +115,7 @@ static int files_add(
|
||||
|
||||
key = p;
|
||||
} else {
|
||||
p = strjoin(dirpath, "/", de->d_name);
|
||||
p = path_join(dirpath, de->d_name);
|
||||
if (!p)
|
||||
return -ENOMEM;
|
||||
|
||||
|
@ -566,7 +566,7 @@ static int fd_copy_directory(
|
||||
|
||||
if (progress_path) {
|
||||
if (display_path)
|
||||
child_display_path = dp = strjoin(display_path, "/", de->d_name);
|
||||
child_display_path = dp = path_join(display_path, de->d_name);
|
||||
else
|
||||
child_display_path = de->d_name;
|
||||
|
||||
|
@ -589,10 +589,7 @@ static int search_and_fopen_internal(const char *path, const char *mode, const c
|
||||
_cleanup_free_ char *p = NULL;
|
||||
FILE *f;
|
||||
|
||||
if (root)
|
||||
p = strjoin(root, *i, "/", path);
|
||||
else
|
||||
p = strjoin(*i, "/", path);
|
||||
p = path_join(root, *i, path);
|
||||
if (!p)
|
||||
return -ENOMEM;
|
||||
|
||||
|
@ -68,10 +68,7 @@ char *path_make_absolute(const char *p, const char *prefix) {
|
||||
if (path_is_absolute(p) || isempty(prefix))
|
||||
return strdup(p);
|
||||
|
||||
if (endswith(prefix, "/"))
|
||||
return strjoin(prefix, p);
|
||||
else
|
||||
return strjoin(prefix, "/", p);
|
||||
return path_join(prefix, p);
|
||||
}
|
||||
|
||||
int safe_getcwd(char **ret) {
|
||||
@ -581,7 +578,7 @@ int find_binary(const char *name, char **ret) {
|
||||
if (!path_is_absolute(element))
|
||||
continue;
|
||||
|
||||
j = strjoin(element, "/", name);
|
||||
j = path_join(element, name);
|
||||
if (!j)
|
||||
return -ENOMEM;
|
||||
|
||||
|
@ -320,7 +320,7 @@ int mkdtemp_malloc(const char *template, char **ret) {
|
||||
if (r < 0)
|
||||
return r;
|
||||
|
||||
p = strjoin(tmp, "/XXXXXX");
|
||||
p = path_join(tmp, "XXXXXX");
|
||||
}
|
||||
if (!p)
|
||||
return -ENOMEM;
|
||||
|
@ -4,6 +4,7 @@
|
||||
|
||||
#include "alloc-util.h"
|
||||
#include "busctl-introspect.h"
|
||||
#include "path-util.h"
|
||||
#include "string-util.h"
|
||||
#include "util.h"
|
||||
#include "xml.h"
|
||||
@ -250,10 +251,7 @@ static int parse_xml_node(Context *context, const char *prefix, unsigned n_depth
|
||||
node_path = TAKE_PTR(name);
|
||||
else {
|
||||
|
||||
if (endswith(prefix, "/"))
|
||||
node_path = strappend(prefix, name);
|
||||
else
|
||||
node_path = strjoin(prefix, "/", name);
|
||||
node_path = path_join(prefix, name);
|
||||
if (!node_path)
|
||||
return log_oom();
|
||||
}
|
||||
|
@ -243,7 +243,7 @@ static int run(int argc, char *argv[]) {
|
||||
|
||||
controller = c ?: SYSTEMD_CGROUP_CONTROLLER;
|
||||
if (p) {
|
||||
j = strjoin(root, "/", p);
|
||||
j = path_join(root, p);
|
||||
if (!j)
|
||||
return log_oom();
|
||||
|
||||
|
@ -459,7 +459,7 @@ static int refresh_one(
|
||||
if (r == 0)
|
||||
break;
|
||||
|
||||
p = strjoin(path, "/", fn);
|
||||
p = path_join(path, fn);
|
||||
if (!p)
|
||||
return -ENOMEM;
|
||||
|
||||
|
@ -1617,11 +1617,7 @@ char *unit_default_cgroup_path(const Unit *u) {
|
||||
if (!escaped)
|
||||
return NULL;
|
||||
|
||||
if (slice)
|
||||
return strjoin(u->manager->cgroup_root, "/", slice, "/",
|
||||
escaped);
|
||||
else
|
||||
return strjoin(u->manager->cgroup_root, "/", escaped);
|
||||
return path_join(empty_to_root(u->manager->cgroup_root), slice, escaped);
|
||||
}
|
||||
|
||||
int unit_set_cgroup_path(Unit *u, const char *path) {
|
||||
@ -2472,7 +2468,7 @@ static int unit_watch_pids_in_path(Unit *u, const char *path) {
|
||||
while ((r = cg_read_subgroup(d, &fn)) > 0) {
|
||||
_cleanup_free_ char *p = NULL;
|
||||
|
||||
p = strjoin(path, "/", fn);
|
||||
p = path_join(path, fn);
|
||||
free(fn);
|
||||
|
||||
if (!p)
|
||||
|
@ -349,7 +349,7 @@ static int bus_service_set_transient_property(
|
||||
if (e) {
|
||||
char *z;
|
||||
|
||||
z = strjoin("/run/", e);
|
||||
z = path_join("/run", e);
|
||||
if (!z)
|
||||
return log_oom();
|
||||
|
||||
|
@ -956,7 +956,7 @@ static int append_cgroup(sd_bus_message *reply, const char *p, Set *pids) {
|
||||
if (r == 0)
|
||||
break;
|
||||
|
||||
j = strjoin(p, "/", g);
|
||||
j = path_join(p, g);
|
||||
if (!j)
|
||||
return -ENOMEM;
|
||||
|
||||
|
@ -2334,7 +2334,7 @@ static int compile_bind_mounts(
|
||||
* directory. For that we overmount the usually inaccessible "private" subdirectory with a
|
||||
* tmpfs that makes it accessible and is empty except for the submounts we do this for. */
|
||||
|
||||
private_root = strjoin(params->prefix[t], "/private");
|
||||
private_root = path_join(params->prefix[t], "private");
|
||||
if (!private_root) {
|
||||
r = -ENOMEM;
|
||||
goto finish;
|
||||
@ -2350,9 +2350,9 @@ static int compile_bind_mounts(
|
||||
|
||||
if (context->dynamic_user &&
|
||||
!IN_SET(t, EXEC_DIRECTORY_RUNTIME, EXEC_DIRECTORY_CONFIGURATION))
|
||||
s = strjoin(params->prefix[t], "/private/", *suffix);
|
||||
s = path_join(params->prefix[t], "private", *suffix);
|
||||
else
|
||||
s = strjoin(params->prefix[t], "/", *suffix);
|
||||
s = path_join(params->prefix[t], *suffix);
|
||||
if (!s) {
|
||||
r = -ENOMEM;
|
||||
goto finish;
|
||||
@ -2364,7 +2364,7 @@ static int compile_bind_mounts(
|
||||
/* When RootDirectory= or RootImage= are set, then the symbolic link to the private
|
||||
* directory is not created on the root directory. So, let's bind-mount the directory
|
||||
* on the 'non-private' place. */
|
||||
d = strjoin(params->prefix[t], "/", *suffix);
|
||||
d = path_join(params->prefix[t], *suffix);
|
||||
else
|
||||
d = strdup(s);
|
||||
if (!d) {
|
||||
@ -2800,9 +2800,9 @@ static int compile_suggested_paths(const ExecContext *c, const ExecParameters *p
|
||||
char *e;
|
||||
|
||||
if (t == EXEC_DIRECTORY_RUNTIME)
|
||||
e = strjoin(p->prefix[t], "/", *i);
|
||||
e = path_join(p->prefix[t], *i);
|
||||
else
|
||||
e = strjoin(p->prefix[t], "/private/", *i);
|
||||
e = path_join(p->prefix[t], "private", *i);
|
||||
if (!e)
|
||||
return -ENOMEM;
|
||||
|
||||
@ -2840,7 +2840,7 @@ static int exec_parameters_get_cgroup_path(const ExecParameters *params, char **
|
||||
|
||||
using_subcgroup = FLAGS_SET(params->flags, EXEC_CONTROL_CGROUP|EXEC_CGROUP_DELEGATE|EXEC_IS_CONTROL);
|
||||
if (using_subcgroup)
|
||||
p = strjoin(params->cgroup_path, "/.control");
|
||||
p = path_join(params->cgroup_path, ".control");
|
||||
else
|
||||
p = strdup(params->cgroup_path);
|
||||
if (!p)
|
||||
|
@ -676,7 +676,7 @@ int config_parse_exec(
|
||||
NULSTR_FOREACH(prefix, DEFAULT_PATH_NULSTR) {
|
||||
_cleanup_free_ char *fullpath = NULL;
|
||||
|
||||
fullpath = strjoin(prefix, "/", path);
|
||||
fullpath = path_join(prefix, path);
|
||||
if (!fullpath)
|
||||
return log_oom();
|
||||
|
||||
|
@ -328,7 +328,7 @@ static int parse_confirm_spawn(const char *value, char **console) {
|
||||
else if (is_path(value)) /* on with fully qualified path */
|
||||
s = strdup(value);
|
||||
else /* on with only a tty file name, not a fully qualified path */
|
||||
s = strjoin("/dev/", value);
|
||||
s = path_join("/dev", value);
|
||||
if (!s)
|
||||
return -ENOMEM;
|
||||
|
||||
|
@ -1483,7 +1483,7 @@ static void manager_build_unit_path_cache(Manager *m) {
|
||||
FOREACH_DIRENT(de, d, r = -errno; goto fail) {
|
||||
char *p;
|
||||
|
||||
p = strjoin(streq(*i, "/") ? "" : *i, "/", de->d_name);
|
||||
p = path_join(*i, de->d_name);
|
||||
if (!p) {
|
||||
r = -ENOMEM;
|
||||
goto fail;
|
||||
|
@ -1005,7 +1005,7 @@ int unit_add_exec_dependencies(Unit *u, ExecContext *c) {
|
||||
STRV_FOREACH(dp, c->directories[dt].paths) {
|
||||
_cleanup_free_ char *p;
|
||||
|
||||
p = strjoin(u->manager->prefix[dt], "/", *dp);
|
||||
p = path_join(u->manager->prefix[dt], *dp);
|
||||
if (!p)
|
||||
return -ENOMEM;
|
||||
|
||||
@ -4520,7 +4520,7 @@ int unit_make_transient(Unit *u) {
|
||||
|
||||
(void) mkdir_p_label(u->manager->lookup_paths.transient, 0755);
|
||||
|
||||
path = strjoin(u->manager->lookup_paths.transient, "/", u->id);
|
||||
path = path_join(u->manager->lookup_paths.transient, u->id);
|
||||
if (!path)
|
||||
return -ENOMEM;
|
||||
|
||||
|
@ -776,7 +776,7 @@ static int save_core(sd_journal *j, FILE *file, char **path, bool *unlink_temp)
|
||||
if (r < 0)
|
||||
return log_error_errno(r, "Failed to acquire temporary directory path: %m");
|
||||
|
||||
temp = strjoin(vt, "/coredump-XXXXXX");
|
||||
temp = path_join(vt, "coredump-XXXXXX");
|
||||
if (!temp)
|
||||
return log_oom();
|
||||
|
||||
|
@ -6,6 +6,7 @@
|
||||
#include "generator.h"
|
||||
#include "mkdir.h"
|
||||
#include "parse-util.h"
|
||||
#include "path-util.h"
|
||||
#include "proc-cmdline.h"
|
||||
#include "special.h"
|
||||
#include "string-util.h"
|
||||
@ -99,7 +100,7 @@ static int generate_mask_symlinks(void) {
|
||||
STRV_FOREACH(u, arg_mask) {
|
||||
_cleanup_free_ char *p = NULL;
|
||||
|
||||
p = strjoin(arg_dest, "/", *u);
|
||||
p = path_join(empty_to_root(arg_dest), *u);
|
||||
if (!p)
|
||||
return log_oom();
|
||||
|
||||
|
@ -200,7 +200,7 @@ static int enumerate_dir_d(
|
||||
|
||||
assert(!endswith(drop, "/"));
|
||||
|
||||
path = strjoin(toppath, "/", drop);
|
||||
path = path_join(toppath, drop);
|
||||
if (!path)
|
||||
return -ENOMEM;
|
||||
|
||||
@ -230,7 +230,7 @@ static int enumerate_dir_d(
|
||||
if (!endswith(*file, ".conf"))
|
||||
continue;
|
||||
|
||||
p = strjoin(path, "/", *file);
|
||||
p = path_join(path, *file);
|
||||
if (!p)
|
||||
return -ENOMEM;
|
||||
d = p + strlen(toppath) + 1;
|
||||
@ -347,7 +347,7 @@ static int enumerate_dir(
|
||||
STRV_FOREACH(t, files) {
|
||||
_cleanup_free_ char *p = NULL;
|
||||
|
||||
p = strjoin(path, "/", *t);
|
||||
p = path_join(path, *t);
|
||||
if (!p)
|
||||
return -ENOMEM;
|
||||
|
||||
@ -426,7 +426,7 @@ static int process_suffix(const char *suffix, const char *onlyprefix) {
|
||||
if (should_skip_path(p, suffix))
|
||||
continue;
|
||||
|
||||
t = strjoin(p, "/", suffix);
|
||||
t = path_join(p, suffix);
|
||||
if (!t) {
|
||||
r = -ENOMEM;
|
||||
goto finish;
|
||||
|
@ -181,7 +181,7 @@ static int add_mount(
|
||||
if (r < 0)
|
||||
return log_error_errno(r, "Failed to generate unit name: %m");
|
||||
|
||||
p = strjoin(arg_dest, "/", unit);
|
||||
p = path_join(empty_to_root(arg_dest), unit);
|
||||
if (!p)
|
||||
return log_oom();
|
||||
|
||||
@ -299,7 +299,7 @@ static int add_swap(const char *path) {
|
||||
if (r < 0)
|
||||
return log_error_errno(r, "Failed to generate unit name: %m");
|
||||
|
||||
unit = strjoin(arg_dest, "/", name);
|
||||
unit = path_join(empty_to_root(arg_dest), name);
|
||||
if (!unit)
|
||||
return log_oom();
|
||||
|
||||
|
@ -211,7 +211,7 @@ static int tar_import_fork_tar(TarImport *i) {
|
||||
assert(!i->temp_path);
|
||||
assert(i->tar_fd < 0);
|
||||
|
||||
i->final_path = strjoin(i->image_root, "/", i->local);
|
||||
i->final_path = path_join(i->image_root, i->local);
|
||||
if (!i->final_path)
|
||||
return log_oom();
|
||||
|
||||
|
@ -2192,8 +2192,8 @@ int server_init(Server *s) {
|
||||
server_cache_boot_id(s);
|
||||
server_cache_machine_id(s);
|
||||
|
||||
s->runtime_storage.path = strjoin("/run/log/journal/", SERVER_MACHINE_ID(s));
|
||||
s->system_storage.path = strjoin("/var/log/journal/", SERVER_MACHINE_ID(s));
|
||||
s->runtime_storage.path = path_join("/run/log/journal", SERVER_MACHINE_ID(s));
|
||||
s->system_storage.path = path_join("/var/log/journal", SERVER_MACHINE_ID(s));
|
||||
if (!s->runtime_storage.path || !s->system_storage.path)
|
||||
return -ENOMEM;
|
||||
|
||||
|
@ -1553,10 +1553,7 @@ static int add_directory(sd_journal *j, const char *prefix, const char *dirname)
|
||||
/* Adds a journal file directory to watch. If the directory is already tracked this updates the inotify watch
|
||||
* and reenumerates directory contents */
|
||||
|
||||
if (dirname)
|
||||
path = strjoin(prefix, "/", dirname);
|
||||
else
|
||||
path = strdup(prefix);
|
||||
path = path_join(prefix, dirname);
|
||||
if (!path) {
|
||||
r = -ENOMEM;
|
||||
goto fail;
|
||||
|
@ -36,6 +36,7 @@
|
||||
#include "memory-util.h"
|
||||
#include "missing.h"
|
||||
#include "parse-util.h"
|
||||
#include "path-util.h"
|
||||
#include "process-util.h"
|
||||
#include "string-util.h"
|
||||
#include "strv.h"
|
||||
@ -3756,7 +3757,7 @@ _public_ int sd_bus_path_encode(const char *prefix, const char *external_id, cha
|
||||
if (!e)
|
||||
return -ENOMEM;
|
||||
|
||||
ret = strjoin(prefix, "/", e);
|
||||
ret = path_join(prefix, e);
|
||||
if (!ret)
|
||||
return -ENOMEM;
|
||||
|
||||
|
@ -752,7 +752,7 @@ static int parent_crawl_children(sd_device_enumerator *enumerator, const char *p
|
||||
if (dent->d_type != DT_DIR)
|
||||
continue;
|
||||
|
||||
child = strjoin(path, "/", dent->d_name);
|
||||
child = path_join(path, dent->d_name);
|
||||
if (!child)
|
||||
return -ENOMEM;
|
||||
|
||||
|
@ -167,7 +167,7 @@ int device_set_syspath(sd_device *device, const char *_syspath, bool verify) {
|
||||
"sd-device: Canonicalized path '%s' does not starts with sysfs mount point '%s'",
|
||||
syspath, real_sys);
|
||||
|
||||
new_syspath = strjoin("/sys/", p);
|
||||
new_syspath = path_join("/sys", p);
|
||||
if (!new_syspath)
|
||||
return -ENOMEM;
|
||||
|
||||
|
@ -10,6 +10,7 @@
|
||||
#include "log.h"
|
||||
#include "macro.h"
|
||||
#include "parse-util.h"
|
||||
#include "path-util.h"
|
||||
#include "process-util.h"
|
||||
#include "rm-rf.h"
|
||||
#include "signal-util.h"
|
||||
@ -464,7 +465,7 @@ static void test_inotify(unsigned n_create_events) {
|
||||
_cleanup_free_ char *z;
|
||||
|
||||
xsprintf(buf, "%u", i);
|
||||
assert_se(z = strjoin(p, "/", buf));
|
||||
assert_se(z = path_join(p, buf));
|
||||
|
||||
assert_se(touch(z) >= 0);
|
||||
}
|
||||
|
@ -58,10 +58,7 @@ static int from_home_dir(const char *envname, const char *suffix, char **buffer,
|
||||
if (r < 0)
|
||||
return r;
|
||||
|
||||
if (endswith(h, "/"))
|
||||
cc = strappend(h, suffix);
|
||||
else
|
||||
cc = strjoin(h, "/", suffix);
|
||||
cc = path_join(h, suffix);
|
||||
if (!cc)
|
||||
return -ENOMEM;
|
||||
|
||||
@ -374,11 +371,7 @@ _public_ int sd_path_home(uint64_t type, const char *suffix, char **path) {
|
||||
}
|
||||
|
||||
suffix += strspn(suffix, "/");
|
||||
|
||||
if (endswith(ret, "/"))
|
||||
cc = strappend(ret, suffix);
|
||||
else
|
||||
cc = strjoin(ret, "/", suffix);
|
||||
cc = path_join(ret, suffix);
|
||||
|
||||
free(buffer);
|
||||
|
||||
@ -443,10 +436,7 @@ static int search_from_environment(
|
||||
if (!h && home_suffix) {
|
||||
e = secure_getenv("HOME");
|
||||
if (e && path_is_absolute(e)) {
|
||||
if (endswith(e, "/"))
|
||||
h = strappend(e, home_suffix);
|
||||
else
|
||||
h = strjoin(e, "/", home_suffix);
|
||||
h = path_join(e, home_suffix);
|
||||
|
||||
if (!h) {
|
||||
strv_free(l);
|
||||
@ -621,12 +611,7 @@ _public_ int sd_path_search(uint64_t type, const char *suffix, char ***paths) {
|
||||
|
||||
j = n;
|
||||
STRV_FOREACH(i, l) {
|
||||
|
||||
if (endswith(*i, "/"))
|
||||
*j = strappend(*i, suffix);
|
||||
else
|
||||
*j = strjoin(*i, "/", suffix);
|
||||
|
||||
*j = path_join(*i, suffix);
|
||||
if (!*j)
|
||||
return -ENOMEM;
|
||||
|
||||
|
@ -789,7 +789,7 @@ static int find_loop_device(const char *backing_file, char **loop_dev) {
|
||||
if (!startswith(de->d_name, "loop"))
|
||||
continue;
|
||||
|
||||
sys = strjoin("/sys/devices/virtual/block/", de->d_name, "/loop/backing_file");
|
||||
sys = path_join("/sys/devices/virtual/block", de->d_name, "loop/backing_file");
|
||||
if (!sys)
|
||||
return -ENOMEM;
|
||||
|
||||
@ -802,7 +802,7 @@ static int find_loop_device(const char *backing_file, char **loop_dev) {
|
||||
if (files_same(fname, backing_file, 0) <= 0)
|
||||
continue;
|
||||
|
||||
l = strjoin("/dev/", de->d_name);
|
||||
l = path_join("/dev", de->d_name);
|
||||
if (!l)
|
||||
return -ENOMEM;
|
||||
|
||||
@ -1125,7 +1125,7 @@ static int acquire_mount_where(sd_device *d) {
|
||||
if (!filename_is_valid(escaped))
|
||||
return 0;
|
||||
|
||||
arg_mount_where = strjoin("/run/media/system/", escaped);
|
||||
arg_mount_where = path_join("/run/media/system", escaped);
|
||||
} else
|
||||
arg_mount_where = strdup(v);
|
||||
|
||||
@ -1257,7 +1257,7 @@ static int discover_loop_backing_file(void) {
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
arg_mount_where = strjoin("/run/media/system/", escaped);
|
||||
arg_mount_where = path_join("/run/media/system", escaped);
|
||||
if (!arg_mount_where)
|
||||
return log_oom();
|
||||
|
||||
|
@ -145,7 +145,7 @@ int custom_mount_prepare_all(const char *dest, CustomMount *l, size_t n) {
|
||||
return log_error_errno(errno, "Failed to acquire temporary directory: %m");
|
||||
}
|
||||
|
||||
m->source = strjoin(m->rm_rf_tmpdir, "/src");
|
||||
m->source = path_join(m->rm_rf_tmpdir, "src");
|
||||
if (!m->source)
|
||||
return log_oom();
|
||||
|
||||
|
@ -1934,7 +1934,7 @@ static int copy_devnodes(const char *dest) {
|
||||
if (r < 0)
|
||||
return log_error_errno(r, "chown() of device node %s failed: %m", to);
|
||||
|
||||
dn = strjoin("/dev/", S_ISCHR(st.st_mode) ? "char" : "block");
|
||||
dn = path_join("/dev", S_ISCHR(st.st_mode) ? "char" : "block");
|
||||
if (!dn)
|
||||
return log_oom();
|
||||
|
||||
@ -2585,7 +2585,7 @@ static int determine_names(void) {
|
||||
* search for a machine, but instead create a new one
|
||||
* in /var/lib/machine. */
|
||||
|
||||
arg_directory = strjoin("/var/lib/machines/", arg_machine);
|
||||
arg_directory = path_join("/var/lib/machines", arg_machine);
|
||||
if (!arg_directory)
|
||||
return log_oom();
|
||||
}
|
||||
@ -3980,7 +3980,7 @@ static int load_settings(void) {
|
||||
FOREACH_STRING(i, "/etc/systemd/nspawn", "/run/systemd/nspawn") {
|
||||
_cleanup_free_ char *j = NULL;
|
||||
|
||||
j = strjoin(i, "/", fn);
|
||||
j = path_join(i, fn);
|
||||
if (!j)
|
||||
return log_oom();
|
||||
|
||||
|
@ -325,7 +325,7 @@ static int extract_now(
|
||||
return -ENOMEM;
|
||||
fd = -1;
|
||||
|
||||
m->source = strjoin(resolved, "/", de->d_name);
|
||||
m->source = path_join(resolved, de->d_name);
|
||||
if (!m->source)
|
||||
return -ENOMEM;
|
||||
|
||||
@ -691,7 +691,7 @@ static int install_chroot_dropin(
|
||||
assert(m);
|
||||
assert(dropin_dir);
|
||||
|
||||
dropin = strjoin(dropin_dir, "/20-portable.conf");
|
||||
dropin = path_join(dropin_dir, "20-portable.conf");
|
||||
if (!dropin)
|
||||
return -ENOMEM;
|
||||
|
||||
@ -778,7 +778,7 @@ static int install_profile_dropin(
|
||||
return 0;
|
||||
}
|
||||
|
||||
dropin = strjoin(dropin_dir, "/10-profile.conf");
|
||||
dropin = path_join(dropin_dir, "10-profile.conf");
|
||||
if (!dropin)
|
||||
return -ENOMEM;
|
||||
|
||||
|
@ -31,6 +31,7 @@
|
||||
#include "mountpoint-util.h"
|
||||
#include "nsflags.h"
|
||||
#include "parse-util.h"
|
||||
#include "path-util.h"
|
||||
#include "proc-cmdline.h"
|
||||
#include "rlimit-util.h"
|
||||
#include "stdio-util.h"
|
||||
@ -1552,7 +1553,7 @@ int bus_path_encode_unique(sd_bus *b, const char *prefix, const char *sender_id,
|
||||
if (!external_label)
|
||||
return -ENOMEM;
|
||||
|
||||
p = strjoin(prefix, "/", sender_label, "/", external_label);
|
||||
p = path_join(prefix, sender_label, external_label);
|
||||
if (!p)
|
||||
return -ENOMEM;
|
||||
|
||||
|
@ -148,7 +148,7 @@ int show_cgroup_by_path(
|
||||
while ((r = cg_read_subgroup(d, &gn)) > 0) {
|
||||
_cleanup_free_ char *k = NULL;
|
||||
|
||||
k = strjoin(fn, "/", gn);
|
||||
k = path_join(fn, gn);
|
||||
free(gn);
|
||||
if (!k)
|
||||
return -ENOMEM;
|
||||
|
@ -994,7 +994,7 @@ static int make_dm_name_and_node(const void *original_node, const char *suffix,
|
||||
if (!filename_is_valid(name))
|
||||
return -EINVAL;
|
||||
|
||||
node = strjoin(crypt_get_dir(), "/", name);
|
||||
node = path_join(crypt_get_dir(), name);
|
||||
if (!node)
|
||||
return -ENOMEM;
|
||||
|
||||
|
@ -1424,7 +1424,7 @@ static int unit_file_search(
|
||||
STRV_FOREACH(p, paths->search_path) {
|
||||
_cleanup_free_ char *path = NULL;
|
||||
|
||||
path = strjoin(*p, "/", info->name);
|
||||
path = path_join(*p, info->name);
|
||||
if (!path)
|
||||
return -ENOMEM;
|
||||
|
||||
@ -1447,7 +1447,7 @@ static int unit_file_search(
|
||||
STRV_FOREACH(p, paths->search_path) {
|
||||
_cleanup_free_ char *path = NULL;
|
||||
|
||||
path = strjoin(*p, "/", template);
|
||||
path = path_join(*p, template);
|
||||
if (!path)
|
||||
return -ENOMEM;
|
||||
|
||||
@ -1840,7 +1840,7 @@ static int install_info_symlink_link(
|
||||
if (r > 0)
|
||||
return 0;
|
||||
|
||||
path = strjoin(config_path, "/", i->name);
|
||||
path = path_join(config_path, i->name);
|
||||
if (!path)
|
||||
return -ENOMEM;
|
||||
|
||||
@ -2379,7 +2379,7 @@ int unit_file_revert(
|
||||
STRV_FOREACH(j, fs) {
|
||||
_cleanup_free_ char *t = NULL;
|
||||
|
||||
t = strjoin(*i, "/", *j);
|
||||
t = path_join(*i, *j);
|
||||
if (!t)
|
||||
return -ENOMEM;
|
||||
|
||||
|
@ -146,10 +146,7 @@ static int image_new(
|
||||
if (!i->name)
|
||||
return -ENOMEM;
|
||||
|
||||
if (path)
|
||||
i->path = strjoin(path, "/", filename);
|
||||
else
|
||||
i->path = strdup(filename);
|
||||
i->path = path_join(path, filename);
|
||||
if (!i->path)
|
||||
return -ENOMEM;
|
||||
|
||||
|
@ -303,7 +303,7 @@ static int acquire_transient_dir(
|
||||
return -EOPNOTSUPP;
|
||||
|
||||
if (tempdir)
|
||||
transient = strjoin(tempdir, "/transient");
|
||||
transient = path_join(tempdir, "transient");
|
||||
else if (scope == UNIT_FILE_SYSTEM)
|
||||
transient = strdup("/run/systemd/transient");
|
||||
else
|
||||
|
@ -7329,12 +7329,12 @@ static int get_file_to_edit(
|
||||
assert(name);
|
||||
assert(ret_path);
|
||||
|
||||
path = strjoin(paths->persistent_config, "/", name);
|
||||
path = path_join(paths->persistent_config, name);
|
||||
if (!path)
|
||||
return log_oom();
|
||||
|
||||
if (arg_runtime) {
|
||||
run = strjoin(paths->runtime_config, "/", name);
|
||||
run = path_join(paths->runtime_config, name);
|
||||
if (!run)
|
||||
return log_oom();
|
||||
}
|
||||
|
@ -784,7 +784,7 @@ static int enumerate_sysv(const LookupPaths *lp, Hashmap *all_services) {
|
||||
continue;
|
||||
}
|
||||
|
||||
fpath = strjoin(*path, "/", de->d_name);
|
||||
fpath = path_join(*path, de->d_name);
|
||||
if (!fpath)
|
||||
return log_oom();
|
||||
|
||||
@ -829,7 +829,7 @@ static int set_dependencies_from_rcnd(const LookupPaths *lp, Hashmap *all_servic
|
||||
_cleanup_free_ char *path = NULL;
|
||||
struct dirent *de;
|
||||
|
||||
path = strjoin(*p, "/", rcnd_table[i].path);
|
||||
path = path_join(*p, rcnd_table[i].path);
|
||||
if (!path) {
|
||||
r = log_oom();
|
||||
goto finish;
|
||||
@ -859,7 +859,7 @@ static int set_dependencies_from_rcnd(const LookupPaths *lp, Hashmap *all_servic
|
||||
if (a < 0 || b < 0)
|
||||
continue;
|
||||
|
||||
fpath = strjoin(*p, "/", de->d_name);
|
||||
fpath = path_join(*p, de->d_name);
|
||||
if (!fpath) {
|
||||
r = log_oom();
|
||||
goto finish;
|
||||
|
@ -139,7 +139,7 @@ static int get_virtfn_info(sd_device *dev, struct netnames *names, struct virtfn
|
||||
if (!startswith(dent->d_name, "virtfn"))
|
||||
continue;
|
||||
|
||||
virtfn_link_file = strjoin(physfn_pci_syspath, "/", dent->d_name);
|
||||
virtfn_link_file = path_join(physfn_pci_syspath, dent->d_name);
|
||||
if (!virtfn_link_file)
|
||||
return -ENOMEM;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user