On Thu, Aug 13, 2020 at 10:53:05AM -0400, Josef Bacik wrote: > +/** > + * vmemdup_user - duplicate memory region from user space and NUL-terminate vmemdup_user_nul() > +void *vmemdup_user_nul(const void __user *src, size_t len) > +{ > + void *p; > + > + p = kvmalloc(len, GFP_USER); len+1, shirley? > + if (!p) > + return ERR_PTR(-ENOMEM); > + > + if (copy_from_user(p, src, len)) { > + kvfree(p); > + return ERR_PTR(-EFAULT); > + } I think you forgot p[len] = '\0'; > + return p; > +} > +EXPORT_SYMBOL(vmemdup_user_nul); > + > /** > * strndup_user - duplicate an existing string from user space > * @s: The string to duplicate > -- > 2.24.1 >