riscv: uaccess: fix type of 0 variable on error in get_user()
authorBen Dooks <ben-linux@fluff.org>
Thu, 29 Dec 2022 17:05:45 +0000 (17:05 +0000)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 12 Jan 2023 11:02:50 +0000 (12:02 +0100)
commit b9b916aee6715cd7f3318af6dc360c4729417b94 upstream.

If the get_user(x, ptr) has x as a pointer, then the setting
of (x) = 0 is going to produce the following sparse warning,
so fix this by forcing the type of 'x' when access_ok() fails.

fs/aio.c:2073:21: warning: Using plain integer as NULL pointer

Signed-off-by: Ben Dooks <ben-linux@fluff.org>
Reviewed-by: Palmer Dabbelt <palmer@rivosinc.com>
Link: https://lore.kernel.org/r/20221229170545.718264-1-ben-linux@fluff.org
Cc: stable@vger.kernel.org
Signed-off-by: Palmer Dabbelt <palmer@rivosinc.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
arch/riscv/include/asm/uaccess.h

index 855450b..ec0cab9 100644 (file)
@@ -165,7 +165,7 @@ do {                                                                \
        might_fault();                                          \
        access_ok(__p, sizeof(*__p)) ?          \
                __get_user((x), __p) :                          \
-               ((x) = 0, -EFAULT);                             \
+               ((x) = (__force __typeof__(x))0, -EFAULT);      \
 })
 
 #define __put_user_asm(insn, x, ptr, err)                      \