staging: rtl8192e: use memdup_user to simplify code
authorTeodora Baluta <teobaluta@gmail.com>
Sat, 26 Oct 2013 06:18:22 +0000 (09:18 +0300)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 28 Oct 2013 21:47:07 +0000 (14:47 -0700)
Use memdup_user rather than duplicating its implementation. This patch
fixes the following coccinelle warnings:

drivers/staging/rtl8192e/rtl8192e/rtl_core.c:2598:8-15: WARNING opportunity for memdup_user
drivers/staging/rtl8192e/rtllib_softmac.c:3594:9-16: WARNING opportunity for memdup_user

Signed-off-by: Teodora Baluta <teobaluta@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/staging/rtl8192e/rtl8192e/rtl_core.c
drivers/staging/rtl8192e/rtllib_softmac.c

index 6ba02fcd57daac1f01e3a585e0e97a6c2342552e..bd8c9a2970fccab88f7838c18af229cdccf3b771 100644 (file)
@@ -2593,14 +2593,9 @@ static int rtl8192_ioctl(struct net_device *dev, struct ifreq *rq, int cmd)
                        goto out;
                }
 
-               ipw = kmalloc(p->length, GFP_KERNEL);
-               if (ipw == NULL) {
-                       ret = -ENOMEM;
-                       goto out;
-               }
-               if (copy_from_user(ipw, p->pointer, p->length)) {
-                       kfree(ipw);
-                       ret = -EFAULT;
+               ipw = memdup_user(p->pointer, p->length);
+               if (IS_ERR(ipw)) {
+                       ret = PTR_ERR(ipw);
                        goto out;
                }
 
index e74d24212a3950dd5da4ae648f88f1d90763b2e5..671fb5ac57441826e24048b22897eb825bb7fac1 100644 (file)
@@ -3590,14 +3590,9 @@ int rtllib_wpa_supplicant_ioctl(struct rtllib_device *ieee, struct iw_point *p,
                goto out;
        }
 
-       param = kmalloc(p->length, GFP_KERNEL);
-       if (param == NULL) {
-               ret = -ENOMEM;
-               goto out;
-       }
-       if (copy_from_user(param, p->pointer, p->length)) {
-               kfree(param);
-               ret = -EFAULT;
+       param = memdup_user(p->pointer, p->length);
+       if (IS_ERR(param)) {
+               ret = PTR_ERR(param);
                goto out;
        }