diff options
author | Andrey Ryabinin <aryabinin@virtuozzo.com> | 2018-10-26 15:02:30 -0700 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2018-10-26 16:25:18 -0700 |
commit | 19a2ca0fb560fd7be7b5293c6b652c6d6078dcde (patch) | |
tree | c4ed897c25ef86a5b04565027e6f7e65ff3d7f45 /arch/arm64/lib/memchr.S | |
parent | 74f213ea25b99fddcf34cbe07dabdb01136bcd86 (diff) | |
download | linux-stable-19a2ca0fb560fd7be7b5293c6b652c6d6078dcde.tar.gz linux-stable-19a2ca0fb560fd7be7b5293c6b652c6d6078dcde.tar.bz2 linux-stable-19a2ca0fb560fd7be7b5293c6b652c6d6078dcde.zip |
arm64: lib: use C string functions with KASAN enabled
ARM64 has asm implementation of memchr(), memcmp(), str[r]chr(),
str[n]cmp(), str[n]len(). KASAN don't see memory accesses in asm code,
thus it can potentially miss many bugs.
Ifdef out __HAVE_ARCH_* defines of these functions when KASAN is enabled,
so the generic implementations from lib/string.c will be used.
We can't just remove the asm functions because efistub uses them. And we
can't have two non-weak functions either, so declare the asm functions as
weak.
Link: http://lkml.kernel.org/r/20180920135631.23833-2-aryabinin@virtuozzo.com
Signed-off-by: Andrey Ryabinin <aryabinin@virtuozzo.com>
Reported-by: Kyeongdon Kim <kyeongdon.kim@lge.com>
Cc: Alexander Potapenko <glider@google.com>
Cc: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Cc: Dmitry Vyukov <dvyukov@google.com>
Cc: Mark Rutland <mark.rutland@arm.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'arch/arm64/lib/memchr.S')
-rw-r--r-- | arch/arm64/lib/memchr.S | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/arch/arm64/lib/memchr.S b/arch/arm64/lib/memchr.S index 4444c1d25f4b..0f164a4baf52 100644 --- a/arch/arm64/lib/memchr.S +++ b/arch/arm64/lib/memchr.S @@ -30,7 +30,7 @@ * Returns: * x0 - address of first occurrence of 'c' or 0 */ -ENTRY(memchr) +WEAK(memchr) and w1, w1, #0xff 1: subs x2, x2, #1 b.mi 2f |