diff options
author | Max Filippov <jcmvbkbc@gmail.com> | 2020-05-23 00:52:03 +0200 |
---|---|---|
committer | Max Filippov <jcmvbkbc@gmail.com> | 2020-05-23 01:09:00 +0200 |
commit | 9afcc71b4f85ee9c9604c9b8349bac0eed44aa63 (patch) | |
tree | 91908c6c4e6ca66310b8383d5001d82821848888 /arch/xtensa/include/asm/uaccess.h | |
parent | xtensa: fix type conversion in __get_user_size (diff) | |
download | linux-9afcc71b4f85ee9c9604c9b8349bac0eed44aa63.tar.xz linux-9afcc71b4f85ee9c9604c9b8349bac0eed44aa63.zip |
xtensa: fix error paths in __get_user_{check,size}
Error paths in __get_user_check and __get_user_size directly assing 0 to
the result. It causes the following sparse warnings:
sparse: warning: Using plain integer as NULL pointer
Convert 0 to the type pointed to by the user pointer before assigning it.
Signed-off-by: Max Filippov <jcmvbkbc@gmail.com>
Diffstat (limited to 'arch/xtensa/include/asm/uaccess.h')
-rw-r--r-- | arch/xtensa/include/asm/uaccess.h | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/arch/xtensa/include/asm/uaccess.h b/arch/xtensa/include/asm/uaccess.h index 445bb4cf3c28..0fd9b4086ae2 100644 --- a/arch/xtensa/include/asm/uaccess.h +++ b/arch/xtensa/include/asm/uaccess.h @@ -184,7 +184,7 @@ __asm__ __volatile__( \ if (access_ok(__gu_addr, size)) \ __get_user_size((x), __gu_addr, (size), __gu_err); \ else \ - (x) = 0; \ + (x) = (__typeof__(*(ptr)))0; \ __gu_err; \ }) @@ -202,13 +202,15 @@ do { \ u64 __x; \ if (unlikely(__copy_from_user(&__x, ptr, 8))) { \ retval = -EFAULT; \ - (x) = 0; \ + (x) = (__typeof__(*(ptr)))0; \ } else { \ (x) = *(__force __typeof__(*(ptr)) *)&__x; \ } \ break; \ } \ - default: (x) = 0; __get_user_bad(); \ + default: \ + (x) = (__typeof__(*(ptr)))0; \ + __get_user_bad(); \ } \ } while (0) |