Messages in this thread | | | Date | Thu, 24 Nov 2022 14:18:03 +0100 | From | "Arnd Bergmann" <> | Subject | Re: [PATCH v6 1/3] random: add vgetrandom_alloc() syscall |
| |
On Thu, Nov 24, 2022, at 13:48, Jason A. Donenfeld wrote: > On Thu, Nov 24, 2022 at 01:24:42PM +0100, Jason A. Donenfeld wrote:
> Looks like set_mempolicy, get_mempoliy, and migrate_pages pass an > unsigned long pointer and I don't see any compat stuff around it: > > SYSCALL_DEFINE3(set_mempolicy, int, mode, const unsigned long > __user *, nmask, > unsigned long, maxnode) > > SYSCALL_DEFINE5(get_mempolicy, int __user *, policy, > unsigned long __user *, nmask, unsigned long, maxnode, > unsigned long, addr, unsigned long, flags) > > SYSCALL_DEFINE4(migrate_pages, pid_t, pid, unsigned long, maxnode, > const unsigned long __user *, old_nodes, > const unsigned long __user *, new_nodes)
Compat handling for these is done all the way down in the pointer access:
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/mm/mempolicy.c#n1368
This works here because it's a special bitmap but is not the best approach if you just have a pointer to a single value.
Arnd
| |