c
< 	buffer = vmemdup_user(buf, lbuf);
---
> 	buffer = kmalloc(lbuf, GFP_KERNEL);
> 	if (!buffer) {
> 		return -ENOMEM;
> 	}
> 	if (copy_from_user(buffer, buf, lbuf)) {
> 		kfree(buffer);
> 		return -EFAULT;
> 	}
