|
@@ -1045,14 +1045,9 @@ static long video1394_ioctl(struct file *file,
|
|
|
if (get_user(qv, &p->packet_sizes))
|
|
|
return -EFAULT;
|
|
|
|
|
|
- psizes = kmalloc(buf_size, GFP_KERNEL);
|
|
|
- if (!psizes)
|
|
|
- return -ENOMEM;
|
|
|
-
|
|
|
- if (copy_from_user(psizes, qv, buf_size)) {
|
|
|
- kfree(psizes);
|
|
|
- return -EFAULT;
|
|
|
- }
|
|
|
+ psizes = memdup_user(qv, buf_size);
|
|
|
+ if (IS_ERR(psizes))
|
|
|
+ return PTR_ERR(psizes);
|
|
|
}
|
|
|
|
|
|
spin_lock_irqsave(&d->lock,flags);
|