mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2024-12-29 09:13:38 +00:00
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 <hch@lst.de> Link: https://lore.kernel.org/r/20241122122931.90408-2-hch@lst.de Reviewed-by: Jan Kara <jack@suse.cz> Signed-off-by: Christian Brauner <brauner@kernel.org>
This commit is contained in:
parent
088f294609
commit
b651251949
@ -374,6 +374,9 @@ static long fcntl_set_rw_hint(struct file *file, unsigned int cmd,
|
|||||||
u64 __user *argp = (u64 __user *)arg;
|
u64 __user *argp = (u64 __user *)arg;
|
||||||
u64 hint;
|
u64 hint;
|
||||||
|
|
||||||
|
if (!inode_owner_or_capable(file_mnt_idmap(file), inode))
|
||||||
|
return -EPERM;
|
||||||
|
|
||||||
if (copy_from_user(&hint, argp, sizeof(hint)))
|
if (copy_from_user(&hint, argp, sizeof(hint)))
|
||||||
return -EFAULT;
|
return -EFAULT;
|
||||||
if (!rw_hint_valid(hint))
|
if (!rw_hint_valid(hint))
|
||||||
|
Loading…
Reference in New Issue
Block a user