]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
mkdir: use chase_symlinks_and_stat() where appropriate
authorLennart Poettering <lennart@poettering.net>
Fri, 12 Nov 2021 13:49:49 +0000 (14:49 +0100)
committerLennart Poettering <lennart@poettering.net>
Tue, 16 Nov 2021 16:01:54 +0000 (17:01 +0100)
src/basic/mkdir.c

index 7aaaae0f0d775261ec325a3cda96d76fd28a3897..431f5d230668d03e34229d7653a27dab9b151214 100644 (file)
@@ -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))