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';