media: v4l2-ioctl: Clear only per-plane reserved fields
Currently the IOCTL code clears everything after the per-plane
bytesperline field in struct v4l2_format. The intent was to only clear
the per-plane reserved fields since there is data in struct v4l2_format
after the per-plane format data that userspace may have filled in.
Fixes: 4e1e0eb0e0
("media: v4l2-ioctl: Zero v4l2_plane_pix_format reserved fields")
Signed-off-by: Thierry Reding <treding@nvidia.com>
Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
[hverkuil-cisco@xs4all.nl: fix checkpatch alignment warning]
Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
This commit is contained in:
parent
1c7fc5cbc3
commit
dd91642ac7
|
@ -1552,7 +1552,8 @@ static int v4l_s_fmt(const struct v4l2_ioctl_ops *ops,
|
|||
break;
|
||||
CLEAR_AFTER_FIELD(p, fmt.pix_mp.xfer_func);
|
||||
for (i = 0; i < p->fmt.pix_mp.num_planes; i++)
|
||||
CLEAR_AFTER_FIELD(p, fmt.pix_mp.plane_fmt[i].bytesperline);
|
||||
CLEAR_AFTER_FIELD(&p->fmt.pix_mp.plane_fmt[i],
|
||||
bytesperline);
|
||||
return ops->vidioc_s_fmt_vid_cap_mplane(file, fh, arg);
|
||||
case V4L2_BUF_TYPE_VIDEO_OVERLAY:
|
||||
if (unlikely(!ops->vidioc_s_fmt_vid_overlay))
|
||||
|
@ -1582,7 +1583,8 @@ static int v4l_s_fmt(const struct v4l2_ioctl_ops *ops,
|
|||
break;
|
||||
CLEAR_AFTER_FIELD(p, fmt.pix_mp.xfer_func);
|
||||
for (i = 0; i < p->fmt.pix_mp.num_planes; i++)
|
||||
CLEAR_AFTER_FIELD(p, fmt.pix_mp.plane_fmt[i].bytesperline);
|
||||
CLEAR_AFTER_FIELD(&p->fmt.pix_mp.plane_fmt[i],
|
||||
bytesperline);
|
||||
return ops->vidioc_s_fmt_vid_out_mplane(file, fh, arg);
|
||||
case V4L2_BUF_TYPE_VIDEO_OUTPUT_OVERLAY:
|
||||
if (unlikely(!ops->vidioc_s_fmt_vid_out_overlay))
|
||||
|
@ -1649,7 +1651,8 @@ static int v4l_try_fmt(const struct v4l2_ioctl_ops *ops,
|
|||
break;
|
||||
CLEAR_AFTER_FIELD(p, fmt.pix_mp.xfer_func);
|
||||
for (i = 0; i < p->fmt.pix_mp.num_planes; i++)
|
||||
CLEAR_AFTER_FIELD(p, fmt.pix_mp.plane_fmt[i].bytesperline);
|
||||
CLEAR_AFTER_FIELD(&p->fmt.pix_mp.plane_fmt[i],
|
||||
bytesperline);
|
||||
return ops->vidioc_try_fmt_vid_cap_mplane(file, fh, arg);
|
||||
case V4L2_BUF_TYPE_VIDEO_OVERLAY:
|
||||
if (unlikely(!ops->vidioc_try_fmt_vid_overlay))
|
||||
|
@ -1679,7 +1682,8 @@ static int v4l_try_fmt(const struct v4l2_ioctl_ops *ops,
|
|||
break;
|
||||
CLEAR_AFTER_FIELD(p, fmt.pix_mp.xfer_func);
|
||||
for (i = 0; i < p->fmt.pix_mp.num_planes; i++)
|
||||
CLEAR_AFTER_FIELD(p, fmt.pix_mp.plane_fmt[i].bytesperline);
|
||||
CLEAR_AFTER_FIELD(&p->fmt.pix_mp.plane_fmt[i],
|
||||
bytesperline);
|
||||
return ops->vidioc_try_fmt_vid_out_mplane(file, fh, arg);
|
||||
case V4L2_BUF_TYPE_VIDEO_OUTPUT_OVERLAY:
|
||||
if (unlikely(!ops->vidioc_try_fmt_vid_out_overlay))
|
||||
|
|
Loading…
Reference in New Issue