On Wed, Feb 16, 2022 at 2:13 PM Arnd Bergmann <arnd@xxxxxxxxxx> wrote:
+ * limit and catch all possible overflows. + * On architectures with separate user address space (m68k, s390, parisc, + * sparc64) or those without an MMU, this should always return true.
...
+static inline int __access_ok(const void __user *ptr, unsigned long size) +{ + unsigned long limit = user_addr_max(); + unsigned long addr = (unsigned long)ptr; + + if (IS_ENABLED(CONFIG_ALTERNATE_USER_ADDRESS_SPACE)) + return true;
I noticed that I'm missing the check for !CONFIG_MMU here, despite mentioning that in the comment above it. I've added it now. Arnd