scsi: aacraid: Use memdup_user() as a cleanup
authorZou Wei <zou_wei@huawei.com>
Sun, 26 Apr 2020 02:42:44 +0000 (10:42 +0800)
committerMartin K. Petersen <martin.petersen@oracle.com>
Tue, 12 May 2020 02:13:18 +0000 (22:13 -0400)
Fix coccicheck warning which recommends to use memdup_user().

This patch fixes the following coccicheck warning:

drivers/scsi/aacraid/commctrl.c:516:15-22: WARNING opportunity for memdup_user

Link: https://lore.kernel.org/r/1587868964-75969-1-git-send-email-zou_wei@huawei.com
Fixes: 4645df1035b3 ("[PATCH] aacraid: swapped kmalloc args.")
Reported-by: Hulk Robot <hulkci@huawei.com>
Signed-off-by: Zou Wei <zou_wei@huawei.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
drivers/scsi/aacraid/commctrl.c

index ffe41bc111fc16af81cee181c719eb34ce5c8fc4..102658bdc15a0d198e7e5de7e54a58cb2e5f26e8 100644 (file)
@@ -513,15 +513,9 @@ static int aac_send_raw_srb(struct aac_dev* dev, void __user * arg)
                goto cleanup;
        }
 
-       user_srbcmd = kmalloc(fibsize, GFP_KERNEL);
-       if (!user_srbcmd) {
-               dprintk((KERN_DEBUG"aacraid: Could not make a copy of the srb\n"));
-               rcode = -ENOMEM;
-               goto cleanup;
-       }
-       if(copy_from_user(user_srbcmd, user_srb,fibsize)){
-               dprintk((KERN_DEBUG"aacraid: Could not copy srb from user\n"));
-               rcode = -EFAULT;
+       user_srbcmd = memdup_user(user_srb, fibsize);
+       if (IS_ERR(user_srbcmd)) {
+               rcode = PTR_ERR(user_srbcmd);
                goto cleanup;
        }