Re: [PATCH 0/2] mm: make copy_to_kernel_nofault() not fault on user addresses

From: Christophe Leroy
Date: Mon Sep 02 2024 - 02:19:45 EST




Le 02/09/2024 à 07:31, Omar Sandoval a écrit :
[Vous ne recevez pas souvent de courriers de osandov@xxxxxxxxxxx. Découvrez pourquoi ceci est important à https://aka.ms/LearnAboutSenderIdentification ]

From: Omar Sandoval <osandov@xxxxxx>

Hi,

I hit a case where copy_to_kernel_nofault() will fault (lol): if the
destination address is in userspace and x86 Supervisor Mode Access
Prevention is enabled. Patch 2 has the details and the fix. Patch 1
renames a helper function so that its use in patch 2 makes more sense.
If the rename is too intrusive, I can drop it.

The name of the function is "copy_to_kernel". If the destination is a user address, it is not a copy to kernel but a copy to user and you already have the function copy_to_user() for that. copy_to_user() properly handles SMAP.

Christophe



Thanks,
Omar

Omar Sandoval (2):
mm: rename copy_from_kernel_nofault_allowed() to
copy_kernel_nofault_allowed()
mm: make copy_to_kernel_nofault() not fault on user addresses

arch/arm/mm/fault.c | 2 +-
arch/loongarch/mm/maccess.c | 2 +-
arch/mips/mm/maccess.c | 2 +-
arch/parisc/lib/memcpy.c | 2 +-
arch/powerpc/mm/maccess.c | 2 +-
arch/um/kernel/maccess.c | 2 +-
arch/x86/mm/maccess.c | 4 ++--
include/linux/uaccess.h | 2 +-
mm/maccess.c | 10 ++++++----
9 files changed, 15 insertions(+), 13 deletions(-)

--
2.46.0