|
@@ -105,13 +105,9 @@ static ssize_t hostaudio_write(struct file *file, const char __user *buffer,
|
|
printk(KERN_DEBUG "hostaudio: write called, count = %d\n", count);
|
|
printk(KERN_DEBUG "hostaudio: write called, count = %d\n", count);
|
|
#endif
|
|
#endif
|
|
|
|
|
|
- kbuf = kmalloc(count, GFP_KERNEL);
|
|
|
|
- if (kbuf == NULL)
|
|
|
|
- return -ENOMEM;
|
|
|
|
-
|
|
|
|
- err = -EFAULT;
|
|
|
|
- if (copy_from_user(kbuf, buffer, count))
|
|
|
|
- goto out;
|
|
|
|
|
|
+ kbuf = memdup_user(buffer, count);
|
|
|
|
+ if (IS_ERR(kbuf))
|
|
|
|
+ return PTR_ERR(kbuf);
|
|
|
|
|
|
err = os_write_file(state->fd, kbuf, count);
|
|
err = os_write_file(state->fd, kbuf, count);
|
|
if (err < 0)
|
|
if (err < 0)
|