staging: lustre: llite: kzalloc/copy_to_user to memdup_user
[cascardo/linux.git] / drivers / staging / lustre / lustre / llite / dir.c
index 4b00d1a..85c50e0 100644 (file)
@@ -1076,17 +1076,11 @@ static int copy_and_ioctl(int cmd, struct obd_export *exp,
        void *copy;
        int rc;
 
-       copy = kzalloc(size, GFP_NOFS);
-       if (!copy)
-               return -ENOMEM;
-
-       if (copy_from_user(copy, data, size)) {
-               rc = -EFAULT;
-               goto out;
-       }
+       copy = memdup_user(data, size);
+       if (IS_ERR(copy))
+               return PTR_ERR(copy);
 
        rc = obd_iocontrol(cmd, exp, size, copy, NULL);
-out:
        kfree(copy);
 
        return rc;