Skip to content

Commit ceac10c

Browse files
amboarRussell King (Oracle)
authored andcommitted
ARM: 9290/1: uaccess: Fix KASAN false-positives
__copy_to_user_memcpy() and __clear_user_memset() had been calling memcpy() and memset() respectively, leading to false-positive KASAN reports when starting userspace: [ 10.707901] Run /init as init process [ 10.731892] process '/bin/busybox' started with executable stack [ 10.745234] ================================================================== [ 10.745796] BUG: KASAN: user-memory-access in __clear_user_memset+0x258/0x3ac [ 10.747260] Write of size 2687 at addr 000de581 by task init/1 Use __memcpy() and __memset() instead to allow userspace access, which is of course the intent of these functions. Signed-off-by: Andrew Jeffery <[email protected]> Signed-off-by: Zev Weiss <[email protected]> Reviewed-by: Arnd Bergmann <[email protected]> Signed-off-by: Russell King (Oracle) <[email protected]>
1 parent c9c3395 commit ceac10c

File tree

1 file changed

+2
-2
lines changed

1 file changed

+2
-2
lines changed

arch/arm/lib/uaccess_with_memcpy.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -116,7 +116,7 @@ __copy_to_user_memcpy(void __user *to, const void *from, unsigned long n)
116116
tocopy = n;
117117

118118
ua_flags = uaccess_save_and_enable();
119-
memcpy((void *)to, from, tocopy);
119+
__memcpy((void *)to, from, tocopy);
120120
uaccess_restore(ua_flags);
121121
to += tocopy;
122122
from += tocopy;
@@ -178,7 +178,7 @@ __clear_user_memset(void __user *addr, unsigned long n)
178178
tocopy = n;
179179

180180
ua_flags = uaccess_save_and_enable();
181-
memset((void *)addr, 0, tocopy);
181+
__memset((void *)addr, 0, tocopy);
182182
uaccess_restore(ua_flags);
183183
addr += tocopy;
184184
n -= tocopy;

0 commit comments

Comments
 (0)