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

Christophe Leroy
2024-09-02T06:20:52Z

Le 02/09/2024 à 07:31, Omar Sandoval a écrit :
> [Vous ne recevez pas souvent de courriers de osandov@osandov.com. Découvrez pourquoi ceci est important à https://aka.ms/LearnAboutSenderIdentification ]
>
> From: Omar Sandoval <osandov@fb.com>
>
> 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
>
>