
< 	kern_buf = memdup_user(buf, nbytes);
---
+ 	kern_buf = kmalloc(nbytes, GFP_KERNEL);
+ 	if (!kern_buf)
+ 		return -ENOMEM;
+ 	if (copy_from_user(kern_buf, buf, nbytes)) {
+ 		kfree(kern_buf);
+ 		return -EFAULT;
+ 	}
