From 270384b2d494bd1f53242c923f875ccfdf6e214d Mon Sep 17 00:00:00 2001 From: Yu Watanabe Date: Tue, 25 Jun 2019 00:24:23 +0900 Subject: [PATCH] tree-wide: replace strjoina() with prefix_roota() --- src/boot/bootctl.c | 24 ++++++++++++------------ src/core/cgroup.c | 2 +- src/delta/delta.c | 5 ++--- src/gpt-auto-generator/gpt-auto-generator.c | 4 ++-- src/import/import-common.c | 2 +- src/import/import-fs.c | 2 +- src/import/pull-common.c | 2 +- src/journal/sd-journal.c | 4 ++-- src/libsystemd/sd-device/device-private.c | 5 ++--- src/libsystemd/sd-device/sd-device.c | 7 +++---- src/portable/portable.c | 6 +++--- src/shared/generator.c | 8 ++++---- src/systemctl/systemctl.c | 4 ++-- src/sysv-generator/sysv-generator.c | 4 ++-- 14 files changed, 38 insertions(+), 41 deletions(-) diff --git a/src/boot/bootctl.c b/src/boot/bootctl.c index e7ba8b4..246b131 100644 --- a/src/boot/bootctl.c +++ b/src/boot/bootctl.c @@ -165,13 +165,13 @@ finish: static int enumerate_binaries(const char *esp_path, const char *path, const char *prefix) { _cleanup_closedir_ DIR *d = NULL; struct dirent *de; + const char *p; int c = 0, r; - char *p; assert(esp_path); assert(path); - p = strjoina(esp_path, "/", path); + p = prefix_roota(esp_path, path); d = opendir(p); if (!d) { if (errno == ENOENT) @@ -754,7 +754,7 @@ static int install_variables(const char *esp_path, uint32_t part, uint64_t pstart, uint64_t psize, sd_id128_t uuid, const char *path, bool first) { - char *p; + const char *p; uint16_t slot; int r; @@ -763,7 +763,7 @@ static int install_variables(const char *esp_path, return 0; } - p = strjoina(esp_path, path); + p = prefix_roota(esp_path, path); if (access(p, F_OK) < 0) { if (errno == ENOENT) return 0; @@ -792,12 +792,12 @@ static int install_variables(const char *esp_path, } static int remove_boot_efi(const char *esp_path) { - char *p; _cleanup_closedir_ DIR *d = NULL; struct dirent *de; + const char *p; int r, c = 0; - p = strjoina(esp_path, "/EFI/BOOT"); + p = prefix_roota(esp_path, "/EFI/BOOT"); d = opendir(p); if (!d) { if (errno == ENOENT) @@ -838,9 +838,9 @@ static int remove_boot_efi(const char *esp_path) { } static int rmdir_one(const char *prefix, const char *suffix) { - char *p; + const char *p; - p = strjoina(prefix, "/", suffix); + p = prefix_roota(prefix, suffix); if (rmdir(p) < 0) { bool ignore = IN_SET(errno, ENOENT, ENOTEMPTY); @@ -870,10 +870,10 @@ static int remove_esp_subdirs(const char *esp_path) { } static int remove_binaries(const char *esp_path) { - char *p; + const char *p; int r, q; - p = strjoina(esp_path, "/EFI/systemd"); + p = prefix_roota(esp_path, "/EFI/systemd"); r = rm_rf(p, REMOVE_ROOT|REMOVE_PHYSICAL); q = remove_boot_efi(esp_path); @@ -888,7 +888,7 @@ static int remove_loader_config(const char *esp_path) { assert(esp_path); - p = strjoina(esp_path, "/loader/loader.conf"); + p = prefix_roota(esp_path, "/loader/loader.conf"); if (unlink(p) < 0) { log_full_errno(errno == ENOENT ? LOG_DEBUG : LOG_ERR, errno, "Failed to unlink file \"%s\": %m", p); if (errno != ENOENT) @@ -933,7 +933,7 @@ static int install_loader_config(const char *esp_path, sd_id128_t machine_id) { const char *p; int r, fd; - p = strjoina(esp_path, "/loader/loader.conf"); + p = prefix_roota(esp_path, "/loader/loader.conf"); if (access(p, F_OK) >= 0) /* Silently skip creation if the file already exists (early check) */ return 0; diff --git a/src/core/cgroup.c b/src/core/cgroup.c index 4b16bb3..1ed5723 100644 --- a/src/core/cgroup.c +++ b/src/core/cgroup.c @@ -1926,7 +1926,7 @@ int unit_attach_pids_to_cgroup(Unit *u, Set *pids, const char *suffix_path) { if (isempty(suffix_path)) p = u->cgroup_path; else - p = strjoina(u->cgroup_path, "/", suffix_path); + p = prefix_roota(u->cgroup_path, suffix_path); delegated_mask = unit_get_delegate_mask(u); diff --git a/src/delta/delta.c b/src/delta/delta.c index b910074..bc11aa8 100644 --- a/src/delta/delta.c +++ b/src/delta/delta.c @@ -374,10 +374,9 @@ static int enumerate_dir( static int should_skip_path(const char *prefix, const char *suffix) { #if HAVE_SPLIT_USR _cleanup_free_ char *target = NULL; - const char *p; - char *dirname; + const char *dirname, *p; - dirname = strjoina(prefix, "/", suffix); + dirname = prefix_roota(prefix, suffix); if (chase_symlinks(dirname, NULL, 0, &target) < 0) return false; diff --git a/src/gpt-auto-generator/gpt-auto-generator.c b/src/gpt-auto-generator/gpt-auto-generator.c index f1db2cb..f6e3767 100644 --- a/src/gpt-auto-generator/gpt-auto-generator.c +++ b/src/gpt-auto-generator/gpt-auto-generator.c @@ -71,7 +71,7 @@ static int add_cryptsetup(const char *id, const char *what, bool rw, bool requir if (!what_escaped) return log_oom(); - p = strjoina(arg_dest, "/", n); + p = prefix_roota(arg_dest, n); f = fopen(p, "wxe"); if (!f) return log_error_errno(errno, "Failed to create unit file %s: %m", p); @@ -360,7 +360,7 @@ static int add_automount( if (r < 0) return log_error_errno(r, "Failed to generate unit name: %m"); - p = strjoina(arg_dest, "/", unit); + p = prefix_roota(arg_dest, unit); f = fopen(p, "wxe"); if (!f) return log_error_errno(errno, "Failed to create unit file %s: %m", unit); diff --git a/src/import/import-common.c b/src/import/import-common.c index 1f63ebb..2f27dda 100644 --- a/src/import/import-common.c +++ b/src/import/import-common.c @@ -213,7 +213,7 @@ int import_mangle_os_tree(const char *path) { return 0; } - joined = strjoina(path, "/", child); + joined = prefix_roota(path, child); r = path_is_os_tree(joined); if (r == -ENOTDIR) { log_debug("Directory '%s' does not look like a directory tree, and contains a single regular file only, leaving as it is.", path); diff --git a/src/import/import-fs.c b/src/import/import-fs.c index abb4efa..f8f3a23 100644 --- a/src/import/import-fs.c +++ b/src/import/import-fs.c @@ -161,7 +161,7 @@ static int import_fs(int argc, char *argv[], void *userdata) { log_info("Importing '%s', saving as '%s'.", strempty(pretty), local); } - final_path = strjoina(arg_image_root, "/", local); + final_path = prefix_roota(arg_image_root, local); r = tempfn_random(final_path, NULL, &temp_path); if (r < 0) diff --git a/src/import/pull-common.c b/src/import/pull-common.c index 62b5230..249ea53 100644 --- a/src/import/pull-common.c +++ b/src/import/pull-common.c @@ -120,7 +120,7 @@ int pull_make_local_copy(const char *final, const char *image_root, const char * if (!image_root) image_root = "/var/lib/machines"; - p = strjoina(image_root, "/", local); + p = prefix_roota(image_root, local); if (force_local) (void) rm_rf(p, REMOVE_ROOT|REMOVE_PHYSICAL|REMOVE_SUBVOLUME); diff --git a/src/journal/sd-journal.c b/src/journal/sd-journal.c index a4f1731..82b180b 100644 --- a/src/journal/sd-journal.c +++ b/src/journal/sd-journal.c @@ -1376,7 +1376,7 @@ static int add_file_by_name( if (!file_type_wanted(j->flags, filename)) return 0; - path = strjoina(prefix, "/", filename); + path = prefix_roota(prefix, filename); return add_any_file(j, -1, path); } @@ -1392,7 +1392,7 @@ static void remove_file_by_name( assert(prefix); assert(filename); - path = strjoina(prefix, "/", filename); + path = prefix_roota(prefix, filename); f = ordered_hashmap_get(j->files, path); if (!f) return; diff --git a/src/libsystemd/sd-device/device-private.c b/src/libsystemd/sd-device/device-private.c index a085500..731b0ed 100644 --- a/src/libsystemd/sd-device/device-private.c +++ b/src/libsystemd/sd-device/device-private.c @@ -609,8 +609,7 @@ void device_set_watch_handle(sd_device *device, int handle) { int device_rename(sd_device *device, const char *name) { _cleanup_free_ char *dirname = NULL; - char *new_syspath; - const char *interface; + const char *new_syspath, *interface; int r; assert(device); @@ -620,7 +619,7 @@ int device_rename(sd_device *device, const char *name) { if (!dirname) return -ENOMEM; - new_syspath = strjoina(dirname, "/", name); + new_syspath = prefix_roota(dirname, name); /* the user must trust that the new name is correct */ r = device_set_syspath(device, new_syspath, false); diff --git a/src/libsystemd/sd-device/sd-device.c b/src/libsystemd/sd-device/sd-device.c index 773be6a..d0f8417 100644 --- a/src/libsystemd/sd-device/sd-device.c +++ b/src/libsystemd/sd-device/sd-device.c @@ -1735,8 +1735,7 @@ static int device_get_sysattr_value(sd_device *device, const char *_key, const c * with a NULL value in the cache, otherwise the returned string is stored */ _public_ int sd_device_get_sysattr_value(sd_device *device, const char *sysattr, const char **_value) { _cleanup_free_ char *value = NULL; - const char *syspath, *cached_value = NULL; - char *path; + const char *path, *syspath, *cached_value = NULL; struct stat statbuf; int r; @@ -1763,7 +1762,7 @@ _public_ int sd_device_get_sysattr_value(sd_device *device, const char *sysattr, if (r < 0) return r; - path = strjoina(syspath, "/", sysattr); + path = prefix_roota(syspath, sysattr); r = lstat(path, &statbuf); if (r < 0) { /* remember that we could not access the sysattr */ @@ -1838,7 +1837,7 @@ _public_ int sd_device_set_sysattr_value(sd_device *device, const char *sysattr, if (r < 0) return r; - path = strjoina(syspath, "/", sysattr); + path = prefix_roota(syspath, sysattr); len = strlen(_value); diff --git a/src/portable/portable.c b/src/portable/portable.c index 8202a8c..4956ae7 100644 --- a/src/portable/portable.c +++ b/src/portable/portable.c @@ -653,10 +653,10 @@ static int portable_changes_add_with_prefix( return 0; if (prefix) { - path = strjoina(prefix, "/", path); + path = prefix_roota(prefix, path); if (source) - source = strjoina(prefix, "/", source); + source = prefix_roota(prefix, source); } return portable_changes_add(changes, n_changes, type, path, source); @@ -847,7 +847,7 @@ static int attach_unit_file( } else (void) portable_changes_add(changes, n_changes, PORTABLE_MKDIR, where, NULL); - path = strjoina(where, "/", m->name); + path = prefix_roota(where, m->name); dropin_dir = strjoin(path, ".d"); if (!dropin_dir) return -ENOMEM; diff --git a/src/shared/generator.c b/src/shared/generator.c index 0a5413c..7273fde 100644 --- a/src/shared/generator.c +++ b/src/shared/generator.c @@ -31,7 +31,7 @@ int generator_open_unit_file( FILE *f; int r; - unit = strjoina(dest, "/", name); + unit = prefix_roota(dest, name); r = fopen_unlocked(unit, "wxe", &f); if (r < 0) { @@ -319,7 +319,7 @@ int generator_hook_up_mkswap( return log_error_errno(r, "Failed to make unit instance name from path \"%s\": %m", node); - unit_file = strjoina(dir, "/", unit); + unit_file = prefix_roota(dir, unit); log_debug("Creating %s", unit_file); escaped = cescape(node); @@ -394,7 +394,7 @@ int generator_hook_up_mkfs( return log_error_errno(r, "Failed to make unit instance name from path \"%s\": %m", node); - unit_file = strjoina(dir, "/", unit); + unit_file = prefix_roota(dir, unit); log_debug("Creating %s", unit_file); escaped = cescape(node); @@ -466,7 +466,7 @@ int generator_hook_up_growfs( return log_error_errno(r, "Failed to make unit name from path \"%s\": %m", where); - unit_file = strjoina(dir, "/", unit); + unit_file = prefix_roota(dir, unit); log_debug("Creating %s", unit_file); f = fopen(unit_file, "wxe"); diff --git a/src/systemctl/systemctl.c b/src/systemctl/systemctl.c index 31bc776..8b02ead 100644 --- a/src/systemctl/systemctl.c +++ b/src/systemctl/systemctl.c @@ -6277,8 +6277,8 @@ static int switch_root(int argc, char *argv[], void *userdata) { if (init) { const char *root_systemd_path = NULL, *root_init_path = NULL; - root_systemd_path = strjoina(root, "/" SYSTEMD_BINARY_PATH); - root_init_path = strjoina(root, "/", init); + root_systemd_path = prefix_roota(root, "/" SYSTEMD_BINARY_PATH); + root_init_path = prefix_roota(root, init); /* If the passed init is actually the same as the * systemd binary, then let's suppress it. */ diff --git a/src/sysv-generator/sysv-generator.c b/src/sysv-generator/sysv-generator.c index 13a9a77..28f8ab3 100644 --- a/src/sysv-generator/sysv-generator.c +++ b/src/sysv-generator/sysv-generator.c @@ -87,7 +87,7 @@ static int add_alias(const char *service, const char *alias) { assert(service); assert(alias); - link = strjoina(arg_dest, "/", alias); + link = prefix_roota(arg_dest, alias); r = symlink(service, link); if (r < 0) { @@ -116,7 +116,7 @@ static int generate_unit_file(SysvStub *s) { if (!path_escaped) return log_oom(); - unit = strjoina(arg_dest, "/", s->name); + unit = prefix_roota(arg_dest, s->name); /* We might already have a symlink with the same name from a Provides:, * or from backup files like /etc/init.d/foo.bak. Real scripts always win, -- 2.7.4