mirror of
https://github.com/raspberrypi/linux.git
synced 2025-12-06 18:09:56 +00:00
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 <andrew@aj.id.au>
Signed-off-by: Zev Weiss <zev@bewilderbeest.net>
Reviewed-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk>
This commit is contained in:
committed by
Russell King (Oracle)
parent
c9c3395d5e
commit
ceac10c83b
@@ -116,7 +116,7 @@ __copy_to_user_memcpy(void __user *to, const void *from, unsigned long n)
|
|||||||
tocopy = n;
|
tocopy = n;
|
||||||
|
|
||||||
ua_flags = uaccess_save_and_enable();
|
ua_flags = uaccess_save_and_enable();
|
||||||
memcpy((void *)to, from, tocopy);
|
__memcpy((void *)to, from, tocopy);
|
||||||
uaccess_restore(ua_flags);
|
uaccess_restore(ua_flags);
|
||||||
to += tocopy;
|
to += tocopy;
|
||||||
from += tocopy;
|
from += tocopy;
|
||||||
@@ -178,7 +178,7 @@ __clear_user_memset(void __user *addr, unsigned long n)
|
|||||||
tocopy = n;
|
tocopy = n;
|
||||||
|
|
||||||
ua_flags = uaccess_save_and_enable();
|
ua_flags = uaccess_save_and_enable();
|
||||||
memset((void *)addr, 0, tocopy);
|
__memset((void *)addr, 0, tocopy);
|
||||||
uaccess_restore(ua_flags);
|
uaccess_restore(ua_flags);
|
||||||
addr += tocopy;
|
addr += tocopy;
|
||||||
n -= tocopy;
|
n -= tocopy;
|
||||||
|
|||||||
Reference in New Issue
Block a user