OSDN Git Service

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)
committerArnd Bergmann <arnd@arndb.de>
Wed, 23 Oct 2019 15:15:56 +0000 (17:15 +0200)
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>
fs/compat_ioctl.c

index a7ec2d3..e0226b2 100644 (file)
@@ -1032,10 +1032,11 @@ COMPAT_SYSCALL_DEFINE3(ioctl, unsigned int, fd, unsigned int, cmd,
 #endif
 
        case FICLONE:
+               goto do_ioctl;
        case FICLONERANGE:
        case FIDEDUPERANGE:
        case FS_IOC_FIEMAP:
-               goto do_ioctl;
+               goto found_handler;
 
        case FIBMAP:
        case FIGETBSZ: