From: Mike Yuan Date: Tue, 20 Jan 2026 17:54:25 +0000 (+0100) Subject: mkdir: reset mtime *after* fchown() X-Git-Tag: v260-rc1~347 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=dbd7555190c8b8041a19e37eca6942625af3cee2;p=thirdparty%2Fsystemd.git mkdir: reset mtime *after* fchown() Follow-up for 34c3d574742e867ef97e79509e4051a82f1b7d9b Also, drop pointless shortcut. --- diff --git a/src/basic/mkdir.c b/src/basic/mkdir.c index f670840e3ce..837880baa2e 100644 --- a/src/basic/mkdir.c +++ b/src/basic/mkdir.c @@ -255,8 +255,8 @@ int mkdir_p_root_full(const char *root, const char *p, uid_t uid, gid_t gid, mod if (nfd < 0) return nfd; - if (ts == USEC_INFINITY && !uid_is_valid(uid) && !gid_is_valid(gid)) - return 1; + if ((uid_is_valid(uid) || gid_is_valid(gid)) && fchown(nfd, uid, gid) < 0) + return -errno; if (ts != USEC_INFINITY) { struct timespec tspec; @@ -269,8 +269,5 @@ int mkdir_p_root_full(const char *root, const char *p, uid_t uid, gid_t gid, mod return -errno; } - if ((uid_is_valid(uid) || gid_is_valid(gid)) && fchown(nfd, uid, gid) < 0) - return -errno; - return 1; }