diff options
| author | Al Viro <viro@zeniv.linux.org.uk> | 2016-08-21 22:13:39 -0400 |
|---|---|---|
| committer | Al Viro <viro@zeniv.linux.org.uk> | 2016-09-13 17:50:13 -0400 |
| commit | c2f18fa4cbb3ad92e033a24efa27583978ce9600 (patch) | |
| tree | 623b1209df74e6777cff21805d4ac71d18009e2c /arch/score/include | |
| parent | fd2d2b191fe75825c4c7a6f12f3fef35aaed7dd7 (diff) | |
score: fix __get_user/get_user
* should zero on any failure
* __get_user() should use __copy_from_user(), not copy_from_user()
Cc: stable@vger.kernel.org
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Diffstat (limited to 'arch/score/include')
| -rw-r--r-- | arch/score/include/asm/uaccess.h | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/arch/score/include/asm/uaccess.h b/arch/score/include/asm/uaccess.h index 20a3591225cc..c5d43111a5cc 100644 --- a/arch/score/include/asm/uaccess.h +++ b/arch/score/include/asm/uaccess.h | |||
| @@ -163,7 +163,7 @@ do { \ | |||
| 163 | __get_user_asm(val, "lw", ptr); \ | 163 | __get_user_asm(val, "lw", ptr); \ |
| 164 | break; \ | 164 | break; \ |
| 165 | case 8: \ | 165 | case 8: \ |
| 166 | if ((copy_from_user((void *)&val, ptr, 8)) == 0) \ | 166 | if (__copy_from_user((void *)&val, ptr, 8) == 0) \ |
| 167 | __gu_err = 0; \ | 167 | __gu_err = 0; \ |
| 168 | else \ | 168 | else \ |
| 169 | __gu_err = -EFAULT; \ | 169 | __gu_err = -EFAULT; \ |
| @@ -188,6 +188,8 @@ do { \ | |||
| 188 | \ | 188 | \ |
| 189 | if (likely(access_ok(VERIFY_READ, __gu_ptr, size))) \ | 189 | if (likely(access_ok(VERIFY_READ, __gu_ptr, size))) \ |
| 190 | __get_user_common((x), size, __gu_ptr); \ | 190 | __get_user_common((x), size, __gu_ptr); \ |
| 191 | else \ | ||
| 192 | (x) = 0; \ | ||
| 191 | \ | 193 | \ |
| 192 | __gu_err; \ | 194 | __gu_err; \ |
| 193 | }) | 195 | }) |
| @@ -201,6 +203,7 @@ do { \ | |||
| 201 | "2:\n" \ | 203 | "2:\n" \ |
| 202 | ".section .fixup,\"ax\"\n" \ | 204 | ".section .fixup,\"ax\"\n" \ |
| 203 | "3:li %0, %4\n" \ | 205 | "3:li %0, %4\n" \ |
| 206 | "li %1, 0\n" \ | ||
| 204 | "j 2b\n" \ | 207 | "j 2b\n" \ |
| 205 | ".previous\n" \ | 208 | ".previous\n" \ |
| 206 | ".section __ex_table,\"a\"\n" \ | 209 | ".section __ex_table,\"a\"\n" \ |
