aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDan Carpenter <dan.carpenter@linaro.org>2025-07-15 18:03:17 -0500
committerChristian Brauner <brauner@kernel.org>2025-07-16 10:22:01 +0200
commite85931d1cd699307e6a3f1060cbe4c42748f3fff (patch)
tree4a8cdc4e47f280159d937cf6f4262a5ed29bb860
parenttree-wide: s/struct fileattr/struct file_kattr/g (diff)
downloadlinux-e85931d1cd699307e6a3f1060cbe4c42748f3fff.tar.gz
linux-e85931d1cd699307e6a3f1060cbe4c42748f3fff.zip
fs: tighten a sanity check in file_attr_to_fileattr()
The fattr->fa_xflags is a u64 that comes from the user. This is a sanity check to ensure that the users are only setting allowed flags. The problem is that it doesn't check the upper 32 bits. It doesn't really affect anything but for more flexibility in the future, we want to enforce users zero out those bits. Fixes: be7efb2d20d6 ("fs: introduce file_getattr and file_setattr syscalls") Signed-off-by: Dan Carpenter <dan.carpenter@linaro.org> Link: https://lore.kernel.org/baf7b808-bcf2-4ac1-9313-882c91cc87b2@sabinyo.mountain Signed-off-by: Christian Brauner <brauner@kernel.org>
-rw-r--r--fs/file_attr.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/fs/file_attr.c b/fs/file_attr.c
index 17745c89e2be..12424d4945d0 100644
--- a/fs/file_attr.c
+++ b/fs/file_attr.c
@@ -136,7 +136,7 @@ EXPORT_SYMBOL(copy_fsxattr_to_user);
static int file_attr_to_fileattr(const struct file_attr *fattr,
struct file_kattr *fa)
{
- __u32 mask = FS_XFLAGS_MASK;
+ __u64 mask = FS_XFLAGS_MASK;
if (fattr->fa_xflags & ~mask)
return -EINVAL;