chase-symlinks: Rename chase_symlinks() to chase()
Chasing symlinks is a core function that's used in a lot of places so it deservers a less verbose names so let's rename it to chase() and chaseat(). We also slightly change the pattern used for the chaseat() helpers so we get chase_and_openat() and similar.
This commit is contained in:
committed by
Zbigniew Jędrzejewski-Szmek
parent
0da2780c8a
commit
f461a28da7
@@ -1,6 +1,6 @@
|
||||
/* SPDX-License-Identifier: LGPL-2.1-or-later */
|
||||
|
||||
#include "chase-symlinks.h"
|
||||
#include "chase.h"
|
||||
#include "fd-util.h"
|
||||
#include "fileio.h"
|
||||
#include "format-util.h"
|
||||
@@ -21,7 +21,7 @@ static int check_etc_passwd_collisions(
|
||||
assert(directory);
|
||||
assert(name || uid_is_valid(uid));
|
||||
|
||||
r = chase_symlinks_and_fopen_unlocked("/etc/passwd", directory, CHASE_PREFIX_ROOT, "re", NULL, &f);
|
||||
r = chase_and_fopen_unlocked("/etc/passwd", directory, CHASE_PREFIX_ROOT, "re", NULL, &f);
|
||||
if (r == -ENOENT)
|
||||
return 0; /* no user database? then no user, hence no collision */
|
||||
if (r < 0)
|
||||
@@ -54,7 +54,7 @@ static int check_etc_group_collisions(
|
||||
assert(directory);
|
||||
assert(name || gid_is_valid(gid));
|
||||
|
||||
r = chase_symlinks_and_fopen_unlocked("/etc/group", directory, CHASE_PREFIX_ROOT, "re", NULL, &f);
|
||||
r = chase_and_fopen_unlocked("/etc/group", directory, CHASE_PREFIX_ROOT, "re", NULL, &f);
|
||||
if (r == -ENOENT)
|
||||
return 0; /* no group database? then no group, hence no collision */
|
||||
if (r < 0)
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
#include <linux/magic.h>
|
||||
|
||||
#include "alloc-util.h"
|
||||
#include "chase-symlinks.h"
|
||||
#include "chase.h"
|
||||
#include "escape.h"
|
||||
#include "fd-util.h"
|
||||
#include "format-util.h"
|
||||
@@ -636,7 +636,7 @@ int mount_all(const char *dest,
|
||||
if (!tmpfs_tmp && FLAGS_SET(mount_table[k].mount_settings, MOUNT_APPLY_TMPFS_TMP))
|
||||
continue;
|
||||
|
||||
r = chase_symlinks(mount_table[k].where, dest, CHASE_NONEXISTENT|CHASE_PREFIX_ROOT, &where, NULL);
|
||||
r = chase(mount_table[k].where, dest, CHASE_NONEXISTENT|CHASE_PREFIX_ROOT, &where, NULL);
|
||||
if (r < 0)
|
||||
return log_error_errno(r, "Failed to resolve %s/%s: %m", dest, mount_table[k].where);
|
||||
|
||||
@@ -695,7 +695,7 @@ int mount_all(const char *dest,
|
||||
* mounts to be created within the container image before we transition into it. Note
|
||||
* that MOUNT_IN_USERNS is run after we transitioned hence prefixing is not ncessary
|
||||
* for those. */
|
||||
r = chase_symlinks(mount_table[k].what, dest, CHASE_PREFIX_ROOT, &prefixed, NULL);
|
||||
r = chase(mount_table[k].what, dest, CHASE_PREFIX_ROOT, &prefixed, NULL);
|
||||
if (r < 0)
|
||||
return log_error_errno(r, "Failed to resolve %s/%s: %m", dest, mount_table[k].what);
|
||||
}
|
||||
@@ -779,7 +779,7 @@ static int mount_bind(const char *dest, CustomMount *m, uid_t uid_shift, uid_t u
|
||||
if (stat(m->source, &source_st) < 0)
|
||||
return log_error_errno(errno, "Failed to stat %s: %m", m->source);
|
||||
|
||||
r = chase_symlinks(m->destination, dest, CHASE_PREFIX_ROOT|CHASE_NONEXISTENT, &where, NULL);
|
||||
r = chase(m->destination, dest, CHASE_PREFIX_ROOT|CHASE_NONEXISTENT, &where, NULL);
|
||||
if (r < 0)
|
||||
return log_error_errno(r, "Failed to resolve %s/%s: %m", dest, m->destination);
|
||||
if (r > 0) { /* Path exists already? */
|
||||
@@ -844,7 +844,7 @@ static int mount_tmpfs(const char *dest, CustomMount *m, uid_t uid_shift, const
|
||||
assert(dest);
|
||||
assert(m);
|
||||
|
||||
r = chase_symlinks(m->destination, dest, CHASE_PREFIX_ROOT|CHASE_NONEXISTENT, &where, NULL);
|
||||
r = chase(m->destination, dest, CHASE_PREFIX_ROOT|CHASE_NONEXISTENT, &where, NULL);
|
||||
if (r < 0)
|
||||
return log_error_errno(r, "Failed to resolve %s/%s: %m", dest, m->destination);
|
||||
if (r == 0) { /* Doesn't exist yet? */
|
||||
@@ -884,7 +884,7 @@ static int mount_overlay(const char *dest, CustomMount *m) {
|
||||
assert(dest);
|
||||
assert(m);
|
||||
|
||||
r = chase_symlinks(m->destination, dest, CHASE_PREFIX_ROOT|CHASE_NONEXISTENT, &where, NULL);
|
||||
r = chase(m->destination, dest, CHASE_PREFIX_ROOT|CHASE_NONEXISTENT, &where, NULL);
|
||||
if (r < 0)
|
||||
return log_error_errno(r, "Failed to resolve %s/%s: %m", dest, m->destination);
|
||||
if (r == 0) { /* Doesn't exist yet? */
|
||||
@@ -926,7 +926,7 @@ static int mount_inaccessible(const char *dest, CustomMount *m) {
|
||||
assert(dest);
|
||||
assert(m);
|
||||
|
||||
r = chase_symlinks_and_stat(m->destination, dest, CHASE_PREFIX_ROOT, &where, &st);
|
||||
r = chase_and_stat(m->destination, dest, CHASE_PREFIX_ROOT, &where, &st);
|
||||
if (r < 0) {
|
||||
log_full_errno(m->graceful ? LOG_DEBUG : LOG_ERR, r, "Failed to resolve %s/%s: %m", dest, m->destination);
|
||||
return m->graceful ? 0 : r;
|
||||
@@ -956,7 +956,7 @@ static int mount_arbitrary(const char *dest, CustomMount *m) {
|
||||
assert(dest);
|
||||
assert(m);
|
||||
|
||||
r = chase_symlinks(m->destination, dest, CHASE_PREFIX_ROOT|CHASE_NONEXISTENT, &where, NULL);
|
||||
r = chase(m->destination, dest, CHASE_PREFIX_ROOT|CHASE_NONEXISTENT, &where, NULL);
|
||||
if (r < 0)
|
||||
return log_error_errno(r, "Failed to resolve %s/%s: %m", dest, m->destination);
|
||||
if (r == 0) { /* Doesn't exist yet? */
|
||||
|
||||
+12
-12
@@ -34,7 +34,7 @@
|
||||
#include "cap-list.h"
|
||||
#include "capability-util.h"
|
||||
#include "cgroup-util.h"
|
||||
#include "chase-symlinks.h"
|
||||
#include "chase.h"
|
||||
#include "common-signal.h"
|
||||
#include "copy.h"
|
||||
#include "cpu-set-util.h"
|
||||
@@ -1958,7 +1958,7 @@ static int setup_timezone(const char *dest) {
|
||||
if (m == TIMEZONE_OFF)
|
||||
return 0;
|
||||
|
||||
r = chase_symlinks("/etc", dest, CHASE_PREFIX_ROOT, &etc, NULL);
|
||||
r = chase("/etc", dest, CHASE_PREFIX_ROOT, &etc, NULL);
|
||||
if (r < 0) {
|
||||
log_warning_errno(r, "Failed to resolve /etc path in container, ignoring: %m");
|
||||
return 0;
|
||||
@@ -1989,7 +1989,7 @@ static int setup_timezone(const char *dest) {
|
||||
return 0; /* Already pointing to the right place? Then do nothing .. */
|
||||
|
||||
check = strjoina(dest, "/usr/share/zoneinfo/", z);
|
||||
r = chase_symlinks(check, dest, 0, NULL, NULL);
|
||||
r = chase(check, dest, 0, NULL, NULL);
|
||||
if (r < 0)
|
||||
log_debug_errno(r, "Timezone %s does not exist (or is not accessible) in container, not creating symlink: %m", z);
|
||||
else {
|
||||
@@ -2016,7 +2016,7 @@ static int setup_timezone(const char *dest) {
|
||||
_cleanup_free_ char *resolved = NULL;
|
||||
int found;
|
||||
|
||||
found = chase_symlinks(where, dest, CHASE_NONEXISTENT, &resolved, NULL);
|
||||
found = chase(where, dest, CHASE_NONEXISTENT, &resolved, NULL);
|
||||
if (found < 0) {
|
||||
log_warning_errno(found, "Failed to resolve /etc/localtime path in container, ignoring: %m");
|
||||
return 0;
|
||||
@@ -2123,7 +2123,7 @@ static int setup_resolv_conf(const char *dest) {
|
||||
if (m == RESOLV_CONF_OFF)
|
||||
return 0;
|
||||
|
||||
r = chase_symlinks("/etc", dest, CHASE_PREFIX_ROOT, &etc, NULL);
|
||||
r = chase("/etc", dest, CHASE_PREFIX_ROOT, &etc, NULL);
|
||||
if (r < 0) {
|
||||
log_warning_errno(r, "Failed to resolve /etc path in container, ignoring: %m");
|
||||
return 0;
|
||||
@@ -2151,7 +2151,7 @@ static int setup_resolv_conf(const char *dest) {
|
||||
_cleanup_free_ char *resolved = NULL;
|
||||
int found;
|
||||
|
||||
found = chase_symlinks(where, dest, CHASE_NONEXISTENT, &resolved, NULL);
|
||||
found = chase(where, dest, CHASE_NONEXISTENT, &resolved, NULL);
|
||||
if (found < 0) {
|
||||
log_warning_errno(found, "Failed to resolve /etc/resolv.conf path in container, ignoring: %m");
|
||||
return 0;
|
||||
@@ -3094,7 +3094,7 @@ static int determine_names(void) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int chase_symlinks_and_update(char **p, unsigned flags) {
|
||||
static int chase_and_update(char **p, unsigned flags) {
|
||||
char *chased;
|
||||
int r;
|
||||
|
||||
@@ -3103,7 +3103,7 @@ static int chase_symlinks_and_update(char **p, unsigned flags) {
|
||||
if (!*p)
|
||||
return 0;
|
||||
|
||||
r = chase_symlinks(*p, NULL, flags, &chased, NULL);
|
||||
r = chase(*p, NULL, flags, &chased, NULL);
|
||||
if (r < 0)
|
||||
return log_error_errno(r, "Failed to resolve path %s: %m", *p);
|
||||
|
||||
@@ -5534,7 +5534,7 @@ static int run(int argc, char *argv[]) {
|
||||
if (arg_ephemeral) {
|
||||
_cleanup_free_ char *np = NULL;
|
||||
|
||||
r = chase_symlinks_and_update(&arg_directory, 0);
|
||||
r = chase_and_update(&arg_directory, 0);
|
||||
if (r < 0)
|
||||
goto finish;
|
||||
|
||||
@@ -5585,7 +5585,7 @@ static int run(int argc, char *argv[]) {
|
||||
free_and_replace(arg_directory, np);
|
||||
remove_directory = true;
|
||||
} else {
|
||||
r = chase_symlinks_and_update(&arg_directory, arg_template ? CHASE_NONEXISTENT : 0);
|
||||
r = chase_and_update(&arg_directory, arg_template ? CHASE_NONEXISTENT : 0);
|
||||
if (r < 0)
|
||||
goto finish;
|
||||
|
||||
@@ -5600,7 +5600,7 @@ static int run(int argc, char *argv[]) {
|
||||
}
|
||||
|
||||
if (arg_template) {
|
||||
r = chase_symlinks_and_update(&arg_template, 0);
|
||||
r = chase_and_update(&arg_template, 0);
|
||||
if (r < 0)
|
||||
goto finish;
|
||||
|
||||
@@ -5676,7 +5676,7 @@ static int run(int argc, char *argv[]) {
|
||||
assert(arg_image);
|
||||
assert(!arg_template);
|
||||
|
||||
r = chase_symlinks_and_update(&arg_image, 0);
|
||||
r = chase_and_update(&arg_image, 0);
|
||||
if (r < 0)
|
||||
goto finish;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user