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 c1b1492a94.
This commit is contained in:
Zbigniew Jędrzejewski-Szmek
2023-03-29 16:00:03 +02:00
parent acbb504eaf
commit 2c71aa77a5

View File

@@ -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;