fix compat handling of FICLONERANGE, FIDEDUPERANGE and FS_IOC_FIEMAP
authorAl Viro <viro@zeniv.linux.org.uk>
Sun, 21 Apr 2019 22:53:50 +0000 (18:53 -0400)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 9 Jan 2020 09:17:58 +0000 (10:17 +0100)
commit 6b2daec19094a90435abe67d16fb43b1a5527254 upstream.

Unlike FICLONE, all of those take a pointer argument; they do need
compat_ptr() applied to arg.

Fixes: d79bdd52d8be ("vfs: wire up compat ioctl for CLONE/CLONE_RANGE")
Fixes: 54dbc1517237 ("vfs: hoist the btrfs deduplication ioctl to the vfs")
Fixes: ceac204e1da9 ("fs: make fiemap work from compat_ioctl")
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
fs/compat_ioctl.c

index 033e8e6aabb777cc24efa766083247f826109a53..f445bc9cdc942d12eccce047477358c05a71da0a 100644 (file)
@@ -1577,9 +1577,10 @@ COMPAT_SYSCALL_DEFINE3(ioctl, unsigned int, fd, unsigned int, cmd,
 #endif
 
        case FICLONE:
+               goto do_ioctl;
        case FICLONERANGE:
        case FIDEDUPERANGE:
-               goto do_ioctl;
+               goto found_handler;
 
        case FIBMAP:
        case FIGETBSZ: