diff options
| -rw-r--r-- | arch/x86/include/asm/uaccess_32.h | 5 | ||||
| -rw-r--r-- | arch/x86/include/asm/uaccess_64.h | 5 |
2 files changed, 4 insertions, 6 deletions
diff --git a/arch/x86/include/asm/uaccess_32.h b/arch/x86/include/asm/uaccess_32.h index 0c9825e97f36..088d09fb1615 100644 --- a/arch/x86/include/asm/uaccess_32.h +++ b/arch/x86/include/asm/uaccess_32.h | |||
| @@ -205,14 +205,13 @@ static inline unsigned long __must_check copy_from_user(void *to, | |||
| 205 | unsigned long n) | 205 | unsigned long n) |
| 206 | { | 206 | { |
| 207 | int sz = __compiletime_object_size(to); | 207 | int sz = __compiletime_object_size(to); |
| 208 | int ret = -EFAULT; | ||
| 209 | 208 | ||
| 210 | if (likely(sz == -1 || sz >= n)) | 209 | if (likely(sz == -1 || sz >= n)) |
| 211 | ret = _copy_from_user(to, from, n); | 210 | n = _copy_from_user(to, from, n); |
| 212 | else | 211 | else |
| 213 | copy_from_user_overflow(); | 212 | copy_from_user_overflow(); |
| 214 | 213 | ||
| 215 | return ret; | 214 | return n; |
| 216 | } | 215 | } |
| 217 | 216 | ||
| 218 | long __must_check strncpy_from_user(char *dst, const char __user *src, | 217 | long __must_check strncpy_from_user(char *dst, const char __user *src, |
diff --git a/arch/x86/include/asm/uaccess_64.h b/arch/x86/include/asm/uaccess_64.h index 46324c6a4f6e..535e421498f6 100644 --- a/arch/x86/include/asm/uaccess_64.h +++ b/arch/x86/include/asm/uaccess_64.h | |||
| @@ -30,16 +30,15 @@ static inline unsigned long __must_check copy_from_user(void *to, | |||
| 30 | unsigned long n) | 30 | unsigned long n) |
| 31 | { | 31 | { |
| 32 | int sz = __compiletime_object_size(to); | 32 | int sz = __compiletime_object_size(to); |
| 33 | int ret = -EFAULT; | ||
| 34 | 33 | ||
| 35 | might_fault(); | 34 | might_fault(); |
| 36 | if (likely(sz == -1 || sz >= n)) | 35 | if (likely(sz == -1 || sz >= n)) |
| 37 | ret = _copy_from_user(to, from, n); | 36 | n = _copy_from_user(to, from, n); |
| 38 | #ifdef CONFIG_DEBUG_VM | 37 | #ifdef CONFIG_DEBUG_VM |
| 39 | else | 38 | else |
| 40 | WARN(1, "Buffer overflow detected!\n"); | 39 | WARN(1, "Buffer overflow detected!\n"); |
| 41 | #endif | 40 | #endif |
| 42 | return ret; | 41 | return n; |
| 43 | } | 42 | } |
| 44 | 43 | ||
| 45 | static __always_inline __must_check | 44 | static __always_inline __must_check |
