X-Git-Url: http://git.cascardo.info/?a=blobdiff_plain;f=mm%2Fusercopy.c;h=3c8da0af96959387e9bb1d2c0bfe272334344e26;hb=f334bcd94b7d3c0fbc34d518a86548f451ab5faf;hp=089328f2b9209ea3526c6caed032b95adad85d0b;hpb=7bb91e06730140a693611e51a4a9636152448bd3;p=cascardo%2Flinux.git diff --git a/mm/usercopy.c b/mm/usercopy.c index 089328f2b920..3c8da0af9695 100644 --- a/mm/usercopy.c +++ b/mm/usercopy.c @@ -207,8 +207,11 @@ static inline const char *check_heap_object(const void *ptr, unsigned long n, * Some architectures (arm64) return true for virt_addr_valid() on * vmalloced addresses. Work around this by checking for vmalloc * first. + * + * We also need to check for module addresses explicitly since we + * may copy static data from modules to userspace */ - if (is_vmalloc_addr(ptr)) + if (is_vmalloc_or_module_addr(ptr)) return NULL; if (!virt_addr_valid(ptr))