...when user data is immediately copied into the allocated region.
Signed-off-by: Julia Lawall <julia@diku.dk>
Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de> (changelog)
                        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);