btrfs: fix 64bit compat send ioctl arguments not initializing version member
authorDavid Sterba <dsterba@suse.com>
Tue, 14 Nov 2023 16:44:11 +0000 (17:44 +0100)
committerDavid Sterba <dsterba@suse.com>
Fri, 24 Nov 2023 17:50:42 +0000 (18:50 +0100)
When the send protocol versioning was added in 5.16 e77fbf990316
("btrfs: send: prepare for v2 protocol"), the 32/64bit compat code was
not updated (added by 2351f431f727 ("btrfs: fix send ioctl on 32bit with
64bit kernel")), missing the version struct member. The compat code is
probably rarely used, nobody reported any bugs.

Found by tool https://github.com/jirislaby/clang-struct .

Fixes: e77fbf990316 ("btrfs: send: prepare for v2 protocol")
CC: stable@vger.kernel.org # 6.1+
Reviewed-by: Filipe Manana <fdmanana@suse.com>
Signed-off-by: David Sterba <dsterba@suse.com>
fs/btrfs/ioctl.c

index f7e94aff41ae5933b6c87bcca18281e8544f589a..2429ae87ad44399d4a04578feeeea0e324a8b291 100644 (file)
@@ -4358,6 +4358,7 @@ static int _btrfs_ioctl_send(struct inode *inode, void __user *argp, bool compat
                arg->clone_sources = compat_ptr(args32.clone_sources);
                arg->parent_root = args32.parent_root;
                arg->flags = args32.flags;
+               arg->version = args32.version;
                memcpy(arg->reserved, args32.reserved,
                       sizeof(args32.reserved));
 #else