diff --git a/src/basic/chase.c b/src/basic/chase.c index 50ab4e3c47..b8fcbcb4e5 100644 --- a/src/basic/chase.c +++ b/src/basic/chase.c @@ -139,11 +139,11 @@ static int log_prohibited_symlink(int fd, ChaseFlags flags) { assert(fd >= 0); if (!FLAGS_SET(flags, CHASE_WARN)) - return -EREMCHG; + return -ELOOP; (void) fd_get_path(fd, &n1); - return log_warning_errno(SYNTHETIC_ERRNO(EREMCHG), + return log_warning_errno(SYNTHETIC_ERRNO(ELOOP), "Detected symlink where no symlink is allowed at '%s', refusing.", strna(n1)); } diff --git a/src/core/mount.c b/src/core/mount.c index 967274b950..c57f6e8a66 100644 --- a/src/core/mount.c +++ b/src/core/mount.c @@ -1171,7 +1171,7 @@ static void mount_enter_mounting(Mount *m) { * couldn't support that reasonably: the mounts in /proc/self/mountinfo would not be recognizable to * us anymore. */ fd = chase_and_open_parent(m->where, /* root= */ NULL, CHASE_PROHIBIT_SYMLINKS|CHASE_MKDIR_0755|CHASE_TRIGGER_AUTOFS, &fn); - if (fd == -EREMCHG) { + if (fd == -ELOOP) { r = unit_log_noncanonical_mount_path(UNIT(m), m->where); goto fail; } diff --git a/src/test/test-chase.c b/src/test/test-chase.c index ed07ac5cef..23ceef5328 100644 --- a/src/test/test-chase.c +++ b/src/test/test-chase.c @@ -403,12 +403,12 @@ TEST(chase) { /* Test CHASE_PROHIBIT_SYMLINKS */ - ASSERT_ERROR(chase("top/dot", temp, CHASE_PREFIX_ROOT|CHASE_PROHIBIT_SYMLINKS, NULL, NULL), EREMCHG); - ASSERT_ERROR(chase("top/dot", temp, CHASE_PREFIX_ROOT|CHASE_PROHIBIT_SYMLINKS|CHASE_WARN, NULL, NULL), EREMCHG); - ASSERT_ERROR(chase("top/dotdot", temp, CHASE_PREFIX_ROOT|CHASE_PROHIBIT_SYMLINKS, NULL, NULL), EREMCHG); - ASSERT_ERROR(chase("top/dotdot", temp, CHASE_PREFIX_ROOT|CHASE_PROHIBIT_SYMLINKS|CHASE_WARN, NULL, NULL), EREMCHG); - ASSERT_ERROR(chase("top/dot/dot", temp, CHASE_PREFIX_ROOT|CHASE_PROHIBIT_SYMLINKS, NULL, NULL), EREMCHG); - ASSERT_ERROR(chase("top/dot/dot", temp, CHASE_PREFIX_ROOT|CHASE_PROHIBIT_SYMLINKS|CHASE_WARN, NULL, NULL), EREMCHG); + ASSERT_ERROR(chase("top/dot", temp, CHASE_PREFIX_ROOT|CHASE_PROHIBIT_SYMLINKS, NULL, NULL), ELOOP); + ASSERT_ERROR(chase("top/dot", temp, CHASE_PREFIX_ROOT|CHASE_PROHIBIT_SYMLINKS|CHASE_WARN, NULL, NULL), ELOOP); + ASSERT_ERROR(chase("top/dotdot", temp, CHASE_PREFIX_ROOT|CHASE_PROHIBIT_SYMLINKS, NULL, NULL), ELOOP); + ASSERT_ERROR(chase("top/dotdot", temp, CHASE_PREFIX_ROOT|CHASE_PROHIBIT_SYMLINKS|CHASE_WARN, NULL, NULL), ELOOP); + ASSERT_ERROR(chase("top/dot/dot", temp, CHASE_PREFIX_ROOT|CHASE_PROHIBIT_SYMLINKS, NULL, NULL), ELOOP); + ASSERT_ERROR(chase("top/dot/dot", temp, CHASE_PREFIX_ROOT|CHASE_PROHIBIT_SYMLINKS|CHASE_WARN, NULL, NULL), ELOOP); cleanup: ASSERT_OK(rm_rf(temp, REMOVE_ROOT|REMOVE_PHYSICAL));