chiark / gitweb /
mkdir: chmod_and_chown() returns errors as "return -errno", not in errno itself
authorLennart Poettering <lennart@poettering.net>
Wed, 9 Aug 2017 10:46:09 +0000 (12:46 +0200)
committerSven Eden <yamakuzure@gmx.net>
Tue, 29 Aug 2017 14:57:55 +0000 (16:57 +0200)
src/basic/mkdir.c

index db1e8329135784309bbf60ac91e4507667ca2b61..867219e4bdcb8d11c2c46c94be3b068f86c6c998 100644 (file)
 
 int mkdir_safe_internal(const char *path, mode_t mode, uid_t uid, gid_t gid, mkdir_func_t _mkdir) {
         struct stat st;
+        int r;
 
-        if (_mkdir(path, mode) >= 0)
-                if (chmod_and_chown(path, mode, uid, gid) < 0)
-                        return -errno;
+        if (_mkdir(path, mode) >= 0) {
+                r = chmod_and_chown(path, mode, uid, gid);
+                if (r < 0)
+                        return r;
+        }
 
         if (lstat(path, &st) < 0)
                 return -errno;