fs/namespace: add __user to open_tree and move_mount syscalls
authorBen Dooks <ben.dooks@codethink.co.uk>
Tue, 15 Oct 2019 10:35:02 +0000 (11:35 +0100)
committerAl Viro <viro@zeniv.linux.org.uk>
Mon, 21 Oct 2019 16:50:35 +0000 (12:50 -0400)
Thw open_tree and move_mount syscalls take names from the
user, so add the __user to these to ensure the following
warnings from sparse are fixed:

fs/namespace.c:2392:35: warning: incorrect type in argument 2 (different address spaces)
fs/namespace.c:2392:35:    expected char const [noderef] <asn:1> *name
fs/namespace.c:2392:35:    got char const *filename
fs/namespace.c:3541:38: warning: incorrect type in argument 2 (different address spaces)
fs/namespace.c:3541:38:    expected char const [noderef] <asn:1> *name
fs/namespace.c:3541:38:    got char const *from_pathname
fs/namespace.c:3550:36: warning: incorrect type in argument 2 (different address spaces)
fs/namespace.c:3550:36:    expected char const [noderef] <asn:1> *name
fs/namespace.c:3550:36:    got char const *to_pathname

Signed-off-by: Ben Dooks <ben.dooks@codethink.co.uk>
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
fs/namespace.c

index fe0e9e1..f4529ee 100644 (file)
@@ -2356,7 +2356,7 @@ static struct file *open_detached_copy(struct path *path, bool recursive)
        return file;
 }
 
-SYSCALL_DEFINE3(open_tree, int, dfd, const char *, filename, unsigned, flags)
+SYSCALL_DEFINE3(open_tree, int, dfd, const char __user *, filename, unsigned, flags)
 {
        struct file *file;
        struct path path;
@@ -3515,8 +3515,8 @@ err_fsfd:
  * Note the flags value is a combination of MOVE_MOUNT_* flags.
  */
 SYSCALL_DEFINE5(move_mount,
-               int, from_dfd, const char *, from_pathname,
-               int, to_dfd, const char *, to_pathname,
+               int, from_dfd, const char __user *, from_pathname,
+               int, to_dfd, const char __user *, to_pathname,
                unsigned int, flags)
 {
        struct path from_path, to_path;