Re: [PATCH 1/2] uvc_v4l2: Use memdup_user() rather than duplicating its implementation
From: Laurent Pinchart
Date: Tue Nov 22 2016 - 12:21:18 EST
Hi Markus,
Thank you for the patch.
On Friday 19 Aug 2016 11:23:18 SF Markus Elfring wrote:
> From: Markus Elfring <elfring@xxxxxxxxxxxxxxxxxxxxx>
> Date: Fri, 19 Aug 2016 10:50:05 +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@xxxxxxxxxxxxxxxxxxxxx>
Reviewed-by: Laurent Pinchart <laurent.pinchart@xxxxxxxxxxxxxxxx>
and applied to my tree.
> ---
> drivers/media/usb/uvc/uvc_v4l2.c | 11 +++--------
> 1 file changed, 3 insertions(+), 8 deletions(-)
>
> diff --git a/drivers/media/usb/uvc/uvc_v4l2.c
> b/drivers/media/usb/uvc/uvc_v4l2.c index 05eed4b..a7e12fd 100644
> --- a/drivers/media/usb/uvc/uvc_v4l2.c
> +++ b/drivers/media/usb/uvc/uvc_v4l2.c
> @@ -70,14 +70,9 @@ static int uvc_ioctl_ctrl_map(struct uvc_video_chain
> *chain, }
>
> size = xmap->menu_count * sizeof(*map->menu_info);
> - map->menu_info = kmalloc(size, GFP_KERNEL);
> - if (map->menu_info == NULL) {
> - ret = -ENOMEM;
> - goto done;
> - }
> -
> - if (copy_from_user(map->menu_info, xmap->menu_info, size)) {
> - ret = -EFAULT;
> + map->menu_info = memdup_user(xmap->menu_info, size);
> + if (IS_ERR(map->menu_info)) {
> + ret = PTR_ERR(map->menu_info);
> goto done;
> }
--
Regards,
Laurent Pinchart