From: Alexander Mikhalitsyn Date: Thu, 26 Jan 2023 10:23:18 +0000 (+0100) Subject: fuse: add inode/permission checks to fileattr_get/fileattr_set X-Git-Tag: v6.6.17~5409^2 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=1cc4606d19e3710bfab3f6704b87ff9580493c69;p=platform%2Fkernel%2Flinux-rpi.git fuse: add inode/permission checks to fileattr_get/fileattr_set It looks like these checks were accidentally lost during the conversion to fileattr API. Fixes: 72227eac177d ("fuse: convert to fileattr") Cc: # v5.13 Signed-off-by: Alexander Mikhalitsyn Signed-off-by: Miklos Szeredi --- diff --git a/fs/fuse/ioctl.c b/fs/fuse/ioctl.c index fcce94a..8ba1545 100644 --- a/fs/fuse/ioctl.c +++ b/fs/fuse/ioctl.c @@ -419,6 +419,12 @@ static struct fuse_file *fuse_priv_ioctl_prepare(struct inode *inode) struct fuse_mount *fm = get_fuse_mount(inode); bool isdir = S_ISDIR(inode->i_mode); + if (!fuse_allow_current_process(fm->fc)) + return ERR_PTR(-EACCES); + + if (fuse_is_bad(inode)) + return ERR_PTR(-EIO); + if (!S_ISREG(inode->i_mode) && !isdir) return ERR_PTR(-ENOTTY);