lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date:   Tue, 12 Jan 2021 12:09:48 +0000
From:   Kieran Bingham <kieran.bingham+renesas@...asonboard.com>
To:     Ricardo Ribalda <ribalda@...omium.org>,
        linux-media@...r.kernel.org, linux-kernel@...r.kernel.org
Cc:     Matthias Brugger <matthias.bgg@...il.com>
Subject: Re: [PATCH 3/9] media: mtk-vcodec: Do not zero reserved fields

Hi Ricardo,

On 11/01/2021 14:54, Ricardo Ribalda wrote:
> Core code already clears reserved fields of struct
> v4l2_pix_format_mplane, check: 4e1e0eb0e074 ("media: v4l2-ioctl: Zero
> v4l2_plane_pix_format reserved fields").
> 
> Cc: Matthias Brugger <matthias.bgg@...il.com>
> Signed-off-by: Ricardo Ribalda <ribalda@...omium.org>

There's also another memset.*reserved occurring in
  platform/mtk-vcodec/mtk_vcodec_enc.c: vidioc_enum_fmt()

While v4l2-core/v4l2-ioctl.c has:
> static int v4l_enum_fmt(const struct v4l2_ioctl_ops *ops,
>                                 struct file *file, void *fh, void *arg)
> {
>         struct video_device *vdev = video_devdata(file);
>         struct v4l2_fmtdesc *p = arg;
>         int ret = check_fmt(file, p->type);
>         u32 mbus_code;
>         u32 cap_mask;
> 
>         if (ret)
>                 return ret;
>         ret = -EINVAL;
> 
>         if (!(vdev->device_caps & V4L2_CAP_IO_MC))
>                 p->mbus_code = 0;
> 
>         mbus_code = p->mbus_code;
>         CLEAR_AFTER_FIELD(p, type);

So would that mean ^^^ should also be sufficient to remove the need for
that memset?

With that fixed or resolved:

Reviewed-by: Kieran Bingham <kieran.bingham+renesas@...asonboard.com>



> ---
>  drivers/media/platform/mtk-vcodec/mtk_vcodec_dec.c | 5 -----
>  drivers/media/platform/mtk-vcodec/mtk_vcodec_enc.c | 8 --------
>  2 files changed, 13 deletions(-)
> 
> diff --git a/drivers/media/platform/mtk-vcodec/mtk_vcodec_dec.c b/drivers/media/platform/mtk-vcodec/mtk_vcodec_dec.c
> index c768a587a944..d746c41ea805 100644
> --- a/drivers/media/platform/mtk-vcodec/mtk_vcodec_dec.c
> +++ b/drivers/media/platform/mtk-vcodec/mtk_vcodec_dec.c
> @@ -715,12 +715,7 @@ static int vidioc_try_fmt(struct v4l2_format *f,
>  		}
>  	}
>  
> -	for (i = 0; i < pix_fmt_mp->num_planes; i++)
> -		memset(&(pix_fmt_mp->plane_fmt[i].reserved[0]), 0x0,
> -			   sizeof(pix_fmt_mp->plane_fmt[0].reserved));
> -
>  	pix_fmt_mp->flags = 0;
> -	memset(&pix_fmt_mp->reserved, 0x0, sizeof(pix_fmt_mp->reserved));
>  	return 0;
>  }
>  
> diff --git a/drivers/media/platform/mtk-vcodec/mtk_vcodec_enc.c b/drivers/media/platform/mtk-vcodec/mtk_vcodec_enc.c
> index 21de1431cfcb..db1f62cc38b3 100644
> --- a/drivers/media/platform/mtk-vcodec/mtk_vcodec_enc.c
> +++ b/drivers/media/platform/mtk-vcodec/mtk_vcodec_enc.c
> @@ -320,13 +320,7 @@ static int vidioc_try_fmt(struct v4l2_format *f,
>  		}
>  	}
>  
> -	for (i = 0; i < pix_fmt_mp->num_planes; i++)
> -		memset(&(pix_fmt_mp->plane_fmt[i].reserved[0]), 0x0,
> -			   sizeof(pix_fmt_mp->plane_fmt[0].reserved));
> -
>  	pix_fmt_mp->flags = 0;
> -	memset(&pix_fmt_mp->reserved, 0x0,
> -		sizeof(pix_fmt_mp->reserved));
>  
>  	return 0;
>  }
> @@ -532,8 +526,6 @@ static int vidioc_venc_g_fmt(struct file *file, void *priv,
>  	for (i = 0; i < pix->num_planes; i++) {
>  		pix->plane_fmt[i].bytesperline = q_data->bytesperline[i];
>  		pix->plane_fmt[i].sizeimage = q_data->sizeimage[i];
> -		memset(&(pix->plane_fmt[i].reserved[0]), 0x0,
> -		       sizeof(pix->plane_fmt[i].reserved));
>  	}
>  
>  	pix->flags = 0;
> 

Powered by blists - more mailing lists