Message ID | 606e0b0c-370f-cff5-607b-0c8ae480e9c1@users.sourceforge.net (mailing list archive) |
---|---|
State | Accepted, archived |
Headers | show |
>-----Original Message----- >From: SF Markus Elfring [mailto:elfring@users.sourceforge.net] >Sent: Sunday, August 21, 2016 2:19 PM >To: linux-scsi@vger.kernel.org; megaraidlinux.pdl@avagotech.com; James E. >J. >Bottomley; Kashyap Desai; Martin K. Petersen; Sumit Saxena; Uday Lingala >Cc: LKML; kernel-janitors@vger.kernel.org; Julia Lawall >Subject: [PATCH] megaraid_sas: Use memdup_user() rather than duplicating >its >implementation > >From: Markus Elfring <elfring@users.sourceforge.net> >Date: Sun, 21 Aug 2016 10:39:04 +0200 > >Reuse existing functionality from memdup_user() instead of keeping >duplicate >source code. > >This issue was detected by using the Coccinelle software. > >Signed-off-by: Markus Elfring <elfring@users.sourceforge.net> >--- > drivers/scsi/megaraid/megaraid_sas_base.c | 11 +++-------- > 1 file changed, 3 insertions(+), 8 deletions(-) > >diff --git a/drivers/scsi/megaraid/megaraid_sas_base.c >b/drivers/scsi/megaraid/megaraid_sas_base.c >index c1ed25a..9a2fe4e 100644 >--- a/drivers/scsi/megaraid/megaraid_sas_base.c >+++ b/drivers/scsi/megaraid/megaraid_sas_base.c >@@ -6711,14 +6711,9 @@ static int megasas_mgmt_ioctl_fw(struct file *file, >unsigned long arg) > unsigned long flags; > u32 wait_time = MEGASAS_RESET_WAIT_TIME; > >- ioc = kmalloc(sizeof(*ioc), GFP_KERNEL); >- if (!ioc) >- return -ENOMEM; >- >- if (copy_from_user(ioc, user_ioc, sizeof(*ioc))) { >- error = -EFAULT; >- goto out_kfree_ioc; >- } >+ ioc = memdup_user(user_ioc, sizeof(*ioc)); >+ if (IS_ERR(ioc)) >+ return PTR_ERR(ioc); > > instance = megasas_lookup_instance(ioc->host_no); > if (!instance) { Acked by: Sumit Saxena <sumit.saxena@broadcom.com> >-- >2.9.3 -- To unsubscribe from this list: send the line "unsubscribe linux-scsi" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
>>>>> "SF" == SF Markus Elfring <elfring@users.sourceforge.net> writes:
SF> Reuse existing functionality from memdup_user() instead of keeping
SF> duplicate source code.
Applied to 4.9/scsi-queue.
diff --git a/drivers/scsi/megaraid/megaraid_sas_base.c b/drivers/scsi/megaraid/megaraid_sas_base.c index c1ed25a..9a2fe4e 100644 --- a/drivers/scsi/megaraid/megaraid_sas_base.c +++ b/drivers/scsi/megaraid/megaraid_sas_base.c @@ -6711,14 +6711,9 @@ static int megasas_mgmt_ioctl_fw(struct file *file, unsigned long arg) unsigned long flags; u32 wait_time = MEGASAS_RESET_WAIT_TIME; - ioc = kmalloc(sizeof(*ioc), GFP_KERNEL); - if (!ioc) - return -ENOMEM; - - if (copy_from_user(ioc, user_ioc, sizeof(*ioc))) { - error = -EFAULT; - goto out_kfree_ioc; - } + ioc = memdup_user(user_ioc, sizeof(*ioc)); + if (IS_ERR(ioc)) + return PTR_ERR(ioc); instance = megasas_lookup_instance(ioc->host_no); if (!instance) {