diff options
author | Djalal Harouni <tixxdz@opendz.org> | 2017-03-16 03:30:15 +0100 |
---|---|---|
committer | Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> | 2017-03-15 22:30:15 -0400 |
commit | d1d59eeb4720371d255fcee025e9e7d96bd625d1 (patch) | |
tree | a8bca53c81bf904779232a3a6f6ba1b34129e281 | |
parent | bda99fab3104095420d3ee03593d07469153f6c4 (diff) |
base-filesystem: skip fchownat() if the previous mkdirat() on same path failed (#5548)
If we are working on a path that was marked to be ignored on errors, and
the mkdirat() fails then add a continue statement and skip fchownat() call.
This avoids the case where UID/GID are valid and we run fchownat() on
non existent path which will fail hard even on paths that we want to
ignore in case of errors.
-rw-r--r-- | src/shared/base-filesystem.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/src/shared/base-filesystem.c b/src/shared/base-filesystem.c index 127cbe44e3..f2d8bcf6e3 100644 --- a/src/shared/base-filesystem.c +++ b/src/shared/base-filesystem.c @@ -117,6 +117,8 @@ int base_filesystem_create(const char *root, uid_t uid, gid_t gid) { if (!table[i].ignore_failure) return -errno; + + continue; } if (uid != UID_INVALID || gid != UID_INVALID) { |