summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLennart Poettering <lennart@poettering.net>2021-11-12 14:49:49 +0100
committerLennart Poettering <lennart@poettering.net>2021-11-16 17:01:54 +0100
commit1e146d738232acbe7f72903e9c5e4d1166ea67f5 (patch)
tree46139960175abade3924d8c29a43250abf0a89b6
parentc7e715096f04fcb1b88e844b7eed52f3e41b9f8b (diff)
downloadsystemd-1e146d738232acbe7f72903e9c5e4d1166ea67f5.tar.gz
mkdir: use chase_symlinks_and_stat() where appropriate
-rw-r--r--src/basic/mkdir.c5
1 files changed, 1 insertions, 4 deletions
diff --git a/src/basic/mkdir.c b/src/basic/mkdir.c
index 7aaaae0f0d..431f5d2306 100644
--- a/src/basic/mkdir.c
+++ b/src/basic/mkdir.c
@@ -42,16 +42,13 @@ int mkdir_safe_internal(
if ((flags & MKDIR_FOLLOW_SYMLINK) && S_ISLNK(st.st_mode)) {
_cleanup_free_ char *p = NULL;
- r = chase_symlinks(path, NULL, CHASE_NONEXISTENT, &p, NULL);
+ r = chase_symlinks_and_stat(path, NULL, CHASE_NONEXISTENT, &p, &st, NULL);
if (r < 0)
return r;
if (r == 0)
return mkdir_safe_internal(p, mode, uid, gid,
flags & ~MKDIR_FOLLOW_SYMLINK,
_mkdir);
-
- if (lstat(p, &st) < 0)
- return -errno;
}
if (!S_ISDIR(st.st_mode))