Re: [PATCH] USB: iowarrior: use memdup_user

From: Johan Hovold
Date: Mon May 15 2017 - 06:14:42 EST


On Sat, May 13, 2017 at 11:16:00AM +0800, Geliang Tang wrote:
> Use memdup_user() helper instead of open-coding to simplify the code.
>
> Signed-off-by: Geliang Tang <geliangtang@xxxxxxxxx>

Looks good to me:

Reviewed-by: Johan Hovold <johan@xxxxxxxxxx>

> ---
> drivers/usb/misc/iowarrior.c | 11 +++--------
> 1 file changed, 3 insertions(+), 8 deletions(-)
>
> diff --git a/drivers/usb/misc/iowarrior.c b/drivers/usb/misc/iowarrior.c
> index 7756953..816afad 100644
> --- a/drivers/usb/misc/iowarrior.c
> +++ b/drivers/usb/misc/iowarrior.c
> @@ -368,14 +368,9 @@ static ssize_t iowarrior_write(struct file *file,
> case USB_DEVICE_ID_CODEMERCS_IOWPV2:
> case USB_DEVICE_ID_CODEMERCS_IOW40:
> /* IOW24 and IOW40 use a synchronous call */
> - buf = kmalloc(count, GFP_KERNEL);
> - if (!buf) {
> - retval = -ENOMEM;
> - goto exit;
> - }
> - if (copy_from_user(buf, user_buffer, count)) {
> - retval = -EFAULT;
> - kfree(buf);
> + buf = memdup_user(user_buffer, count);
> + if (IS_ERR(buf)) {
> + retval = PTR_ERR(buf);
> goto exit;
> }
> retval = usb_set_report(dev->interface, 2, 0, buf, count);