]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
powerpc/uaccess: Cast away __user annotation after verification
authorBenjamin Gray <bgray@linux.ibm.com>
Wed, 11 Oct 2023 05:37:08 +0000 (16:37 +1100)
committerMichael Ellerman <mpe@ellerman.id.au>
Thu, 19 Oct 2023 06:16:20 +0000 (17:16 +1100)
Sparse reports dereference of a __user pointer. copy_mc_to_user() takes
a __user pointer, verifies it, then calls the generic copy routine
copy_mc_generic().

As we have verified the pointer, cast out the __user annotation when
passing to copy_mc_generic().

Signed-off-by: Benjamin Gray <bgray@linux.ibm.com>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Link: https://msgid.link/20231011053711.93427-10-bgray@linux.ibm.com
arch/powerpc/include/asm/uaccess.h

index fb725ec77926e1f38a605104cfb17bd26dc04656..f1f9890f50d3ef84dfd62b5d66db68315f0698b6 100644 (file)
@@ -374,7 +374,7 @@ copy_mc_to_user(void __user *to, const void *from, unsigned long n)
        if (check_copy_size(from, n, true)) {
                if (access_ok(to, n)) {
                        allow_write_to_user(to, n);
-                       n = copy_mc_generic((void *)to, from, n);
+                       n = copy_mc_generic((void __force *)to, from, n);
                        prevent_write_to_user(to, n);
                }
        }