usb: Use memdup_user to reuse the code
authorRahul Pathak <rpathak@visteon.com>
Fri, 11 Dec 2015 05:40:51 +0000 (05:40 +0000)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 25 Jan 2016 03:45:09 +0000 (19:45 -0800)
Fixing coccicheck warning which recommends to use memdup_user instead
to reimplement its code, using memdup_user simplifies the code

./drivers/usb/core/devio.c:1398:11-18: WARNING opportunity for memdup_user

Signed-off-by: Rahul Pathak <rpathak@visteon.com>
Acked-by: Alan Stern <stern@rowland.harvard.edu>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/usb/core/devio.c

index 6aac242..054eb53 100644 (file)
@@ -1378,11 +1378,10 @@ static int proc_do_submiturb(struct usb_dev_state *ps, struct usbdevfs_urb *uurb
                number_of_packets = uurb->number_of_packets;
                isofrmlen = sizeof(struct usbdevfs_iso_packet_desc) *
                                   number_of_packets;
-               isopkt = kmalloc(isofrmlen, GFP_KERNEL);
-               if (!isopkt)
-                       return -ENOMEM;
-               if (copy_from_user(isopkt, iso_frame_desc, isofrmlen)) {
-                       ret = -EFAULT;
+               isopkt = memdup_user(iso_frame_desc, isofrmlen);
+               if (IS_ERR(isopkt)) {
+                       ret = PTR_ERR(isopkt);
+                       isopkt = NULL;
                        goto error;
                }
                for (totlen = u = 0; u < number_of_packets; u++) {