[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <507202a9-b71d-e52b-0306-dd89044ff442@redhat.com>
Date: Sat, 7 Oct 2023 15:50:39 +0800
From: Xiubo Li <xiubli@...hat.com>
To: miklos@...redi.hu
Cc: linux-fsdevel@...r.kernel.org, linux-kernel@...r.kernel.org
Subject: Re: [PATCH] fuse: pass ATTR_KILL_SUID/ATTR_KILL_SGID mode bits to
user space
Ping...
On 9/21/23 10:24, xiubli@...hat.com wrote:
> From: Xiubo Li <xiubli@...hat.com>
>
> Such as for the xfstest-dev's generic/684 test case it will clear
> suid and sgid if the fallocate request is commit by an unprivileged
> user.
>
> We need to pass the ATTR_KILL_SUID/ATTR_KILL_SGID flags to userspace.
>
> Signed-off-by: Xiubo Li <xiubli@...hat.com>
> ---
> fs/fuse/dir.c | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/fs/fuse/dir.c b/fs/fuse/dir.c
> index f67bef9d83c4..73dcf54efbff 100644
> --- a/fs/fuse/dir.c
> +++ b/fs/fuse/dir.c
> @@ -1938,11 +1938,11 @@ static int fuse_setattr(struct mnt_idmap *idmap, struct dentry *entry,
>
> attr->ia_mode = inode->i_mode;
> if (inode->i_mode & S_ISUID) {
> - attr->ia_valid |= ATTR_MODE;
> + attr->ia_valid |= ATTR_KILL_SUID | ATTR_MODE;
> attr->ia_mode &= ~S_ISUID;
> }
> if ((inode->i_mode & (S_ISGID | S_IXGRP)) == (S_ISGID | S_IXGRP)) {
> - attr->ia_valid |= ATTR_MODE;
> + attr->ia_valid |= ATTR_KILL_SGID | ATTR_MODE;
> attr->ia_mode &= ~S_ISGID;
> }
> }
Powered by blists - more mailing lists