From: Christoph Hellwig Date: Fri, 22 Nov 2024 12:29:24 +0000 (+0100) Subject: fs: require inode_owner_or_capable for F_SET_RW_HINT X-Git-Tag: v6.13-rc1~60^2~2 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=b6512519496e29270bca6b2df9baa3cc2d9d5356;p=thirdparty%2Fkernel%2Fstable.git fs: require inode_owner_or_capable for F_SET_RW_HINT F_SET_RW_HINT controls data placement in the file system and / or device and should not be available to everyone who can read a given file. Signed-off-by: Christoph Hellwig Link: https://lore.kernel.org/r/20241122122931.90408-2-hch@lst.de Reviewed-by: Jan Kara Signed-off-by: Christian Brauner --- diff --git a/fs/fcntl.c b/fs/fcntl.c index ac77dd912412e..49884fa3c81d2 100644 --- a/fs/fcntl.c +++ b/fs/fcntl.c @@ -374,6 +374,9 @@ static long fcntl_set_rw_hint(struct file *file, unsigned int cmd, u64 __user *argp = (u64 __user *)arg; u64 hint; + if (!inode_owner_or_capable(file_mnt_idmap(file), inode)) + return -EPERM; + if (copy_from_user(&hint, argp, sizeof(hint))) return -EFAULT; if (!rw_hint_valid(hint))