diff options
author | Lennart Poettering <lennart@poettering.net> | 2018-10-19 11:42:11 +0200 |
---|---|---|
committer | Lukáš Nykrýn <lnykryn@redhat.com> | 2018-12-04 13:40:26 +0100 |
commit | c9630164b869e109bf2960968fc583449ccf0875 (patch) | |
tree | 9794611a33c3e75eab6880cd2b52160ebaac5d31 | |
parent | bbe9ac11d8d4a8511214605509a593fb9f04ffaa (diff) | |
download | systemd-c9630164b869e109bf2960968fc583449ccf0875.tar.gz |
chown-recursive: TAKE_FD() is your friend
(cherry-picked from commit cd6b7d50c337b3676a3d5fc2188ff298dcbdb939)
Related: #1643368
-rw-r--r-- | src/core/chown-recursive.c | 6 |
1 files changed, 1 insertions, 5 deletions
diff --git a/src/core/chown-recursive.c b/src/core/chown-recursive.c index 447b771267..7767301f7d 100644 --- a/src/core/chown-recursive.c +++ b/src/core/chown-recursive.c @@ -111,7 +111,6 @@ static int chown_recursive_internal(int fd, const struct stat *st, uid_t uid, gi int path_chown_recursive(const char *path, uid_t uid, gid_t gid) { _cleanup_close_ int fd = -1; struct stat st; - int r; fd = open(path, O_RDONLY|O_DIRECTORY|O_CLOEXEC|O_NOFOLLOW|O_NOATIME); if (fd < 0) @@ -130,8 +129,5 @@ int path_chown_recursive(const char *path, uid_t uid, gid_t gid) { (!gid_is_valid(gid) || st.st_gid == gid)) return 0; - r = chown_recursive_internal(fd, &st, uid, gid); - fd = -1; /* we donated the fd to the call, regardless if it succeeded or failed */ - - return r; + return chown_recursive_internal(TAKE_FD(fd), &st, uid, gid); /* we donate the fd to the call, regardless if it succeeded or failed */ } |