From: Zbigniew Jędrzejewski-Szmek Date: Wed, 29 Mar 2023 14:00:03 +0000 (+0200) Subject: basic/mkdir: simplify error handling X-Git-Tag: v254-rc1~822^2~4 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=2c71aa77a5f600ad151f9d28e449cb96bf60e8d8;p=thirdparty%2Fsystemd.git basic/mkdir: simplify error handling If we created the dir successfully, we let chmod_and_chown_at() do its thing and shouldn't go into the part where we check if the existing directory has the right permissions and ownership and possibly adjust them. The code was doing that, by relying on the fact that chmod_and_chown_at() does not return -EEXIST. That's probably true, but seems unnecessarilly complicated. Follow-up for c1b1492a94b43ca636eb383c3b058feff27ff7b1. --- diff --git a/src/basic/mkdir.c b/src/basic/mkdir.c index 3b7cf7a0bf4..41af1482bc7 100644 --- a/src/basic/mkdir.c +++ b/src/basic/mkdir.c @@ -33,11 +33,8 @@ int mkdirat_safe_internal( assert(_mkdirat && _mkdirat != mkdirat); r = _mkdirat(dir_fd, path, mode); - if (r >= 0) { - r = chmod_and_chown_at(dir_fd, path, mode, uid, gid); - if (r < 0) - return r; - } + if (r >= 0) + return chmod_and_chown_at(dir_fd, path, mode, uid, gid); if (r != -EEXIST) return r;