]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
fs: tighten a sanity check in file_attr_to_fileattr()
authorDan Carpenter <dan.carpenter@linaro.org>
Tue, 15 Jul 2025 23:03:17 +0000 (18:03 -0500)
committerChristian Brauner <brauner@kernel.org>
Wed, 16 Jul 2025 08:22:01 +0000 (10:22 +0200)
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>
fs/file_attr.c

index 17745c89e2be58a47169e166b84a5d9f08c66daf..12424d4945d0a35641f7828a6a1fd6d0e2302935 100644 (file)
@@ -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;