s390/kasan: fix strncpy_from_user kasan checks [Linux 4.14.128]

s390/kasan: fix strncpy_from_user kasan checks [Linux 4.14.128]

This Linux kernel change "s390/kasan: fix strncpy_from_user kasan checks" is included in the Linux 4.14.128 release. This change is authored by Vasily Gorbik <gor [at] linux.ibm.com> on Tue Apr 23 15:36:36 2019 +0200. The commit for this change in Linux stable tree is 80afb52 (patch) which is from upstream commit 01eb42a. The same Linux upstream change may have been applied to various maintained Linux releases and you can find all Linux releases containing changes from upstream 01eb42a.

s390/kasan: fix strncpy_from_user kasan checks

[ Upstream commit 01eb42afb45719cb41bb32c278e068073738899d ]

arch/s390/lib/uaccess.c is built without kasan instrumentation. Kasan
checks are performed explicitly in copy_from_user/copy_to_user
functions. But since those functions could be inlined, calls from
files like uaccess.c with instrumentation disabled won't generate
kasan reports. This is currently the case with strncpy_from_user
function which was revealed by newly added kasan test. Avoid inlining of
copy_from_user/copy_to_user when the kernel is built with kasan support
to make sure kasan checks are fully functional.

Signed-off-by: Vasily Gorbik <gor@linux.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>

There are 2 lines of Linux source code added/deleted in this change. Code changes to Linux kernel are as follows.

 arch/s390/include/asm/uaccess.h | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/arch/s390/include/asm/uaccess.h b/arch/s390/include/asm/uaccess.h
index cdd0f0d..689eae8 100644
--- a/arch/s390/include/asm/uaccess.h
+++ b/arch/s390/include/asm/uaccess.h
@@ -67,8 +67,10 @@ static inline int __range_ok(unsigned long addr, unsigned long size)
 unsigned long __must_check
 raw_copy_to_user(void __user *to, const void *from, unsigned long n);



Leave a Reply

Your email address will not be published. Required fields are marked *