aboutsummaryrefslogtreecommitdiff
path: root/arch/arm/lib/copy_to_user.S
diff options
context:
space:
mode:
authorJulien Thierry <[email protected]>2018-09-11 10:15:12 +0100
committerRussell King <[email protected]>2018-10-05 10:51:15 +0100
commita1d09e074250fad24f1b993f327b18cc6812eb7a (patch)
tree92904d2fbb862da96ffdfa670f7ab1556239553f /arch/arm/lib/copy_to_user.S
parentafaf6838f4bc896a711180b702b388b8cfa638fc (diff)
ARM: 8797/1: spectre-v1.1: harden __copy_to_user
Sanitize user pointer given to __copy_to_user, both for standard version and memcopy version of the user accessor. Signed-off-by: Julien Thierry <[email protected]> Signed-off-by: Russell King <[email protected]>
Diffstat (limited to 'arch/arm/lib/copy_to_user.S')
-rw-r--r--arch/arm/lib/copy_to_user.S6
1 files changed, 5 insertions, 1 deletions
diff --git a/arch/arm/lib/copy_to_user.S b/arch/arm/lib/copy_to_user.S
index caf5019d8161..970abe521197 100644
--- a/arch/arm/lib/copy_to_user.S
+++ b/arch/arm/lib/copy_to_user.S
@@ -94,6 +94,11 @@
ENTRY(__copy_to_user_std)
WEAK(arm_copy_to_user)
+#ifdef CONFIG_CPU_SPECTRE
+ get_thread_info r3
+ ldr r3, [r3, #TI_ADDR_LIMIT]
+ uaccess_mask_range_ptr r0, r2, r3, ip
+#endif
#include "copy_template.S"
@@ -108,4 +113,3 @@ ENDPROC(__copy_to_user_std)
rsb r0, r0, r2
copy_abort_end
.popsection
-