summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAl Viro <viro@zeniv.linux.org.uk>2016-08-20 22:39:01 +0200
committerAl Viro <viro@zeniv.linux.org.uk>2016-09-13 23:49:43 +0200
commit2e29f50ad5e23db37dde9be71410d95d50241ecd (patch)
treed084e591e3a0094fd38d5b9175e7e1f88fad4d45
parentnios2: copy_from_user() should zero the tail of destination (diff)
downloadlinux-2e29f50ad5e23db37dde9be71410d95d50241ecd.tar.xz
linux-2e29f50ad5e23db37dde9be71410d95d50241ecd.zip
nios2: fix __get_user()
a) should not leave crap on fault b) should _not_ require access_ok() in any cases. Cc: stable@vger.kernel.org Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
-rw-r--r--arch/nios2/include/asm/uaccess.h4
1 files changed, 2 insertions, 2 deletions
diff --git a/arch/nios2/include/asm/uaccess.h b/arch/nios2/include/asm/uaccess.h
index 2b4b9e919675..0ab82324c817 100644
--- a/arch/nios2/include/asm/uaccess.h
+++ b/arch/nios2/include/asm/uaccess.h
@@ -142,7 +142,7 @@ extern long strnlen_user(const char __user *s, long n);
#define __get_user_unknown(val, size, ptr, err) do { \
err = 0; \
- if (copy_from_user(&(val), ptr, size)) { \
+ if (__copy_from_user(&(val), ptr, size)) { \
err = -EFAULT; \
} \
} while (0)
@@ -169,7 +169,7 @@ do { \
({ \
long __gu_err = -EFAULT; \
const __typeof__(*(ptr)) __user *__gu_ptr = (ptr); \
- unsigned long __gu_val; \
+ unsigned long __gu_val = 0; \
__get_user_common(__gu_val, sizeof(*(ptr)), __gu_ptr, __gu_err);\
(x) = (__force __typeof__(x))__gu_val; \
__gu_err; \