[media] v4l2-subdev.c: add 'which' checks for enum ops
Return an error if an invalid 'which' valid is passed in. Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com> Acked-by: Lad, Prabhakar <prabhakar.csengg@gmail.com> Tested-by: Lad, Prabhakar <prabhakar.csengg@gmail.com> Acked-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Acked-by: Sylwester Nawrocki <s.nawrocki@samsung.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
This commit is contained in:
parent
e1c47e732c
commit
20058f9091
|
@ -321,6 +321,10 @@ static long subdev_do_ioctl(struct file *file, unsigned int cmd, void *arg)
|
|||
case VIDIOC_SUBDEV_ENUM_MBUS_CODE: {
|
||||
struct v4l2_subdev_mbus_code_enum *code = arg;
|
||||
|
||||
if (code->which != V4L2_SUBDEV_FORMAT_TRY &&
|
||||
code->which != V4L2_SUBDEV_FORMAT_ACTIVE)
|
||||
return -EINVAL;
|
||||
|
||||
if (code->pad >= sd->entity.num_pads)
|
||||
return -EINVAL;
|
||||
|
||||
|
@ -331,6 +335,10 @@ static long subdev_do_ioctl(struct file *file, unsigned int cmd, void *arg)
|
|||
case VIDIOC_SUBDEV_ENUM_FRAME_SIZE: {
|
||||
struct v4l2_subdev_frame_size_enum *fse = arg;
|
||||
|
||||
if (fse->which != V4L2_SUBDEV_FORMAT_TRY &&
|
||||
fse->which != V4L2_SUBDEV_FORMAT_ACTIVE)
|
||||
return -EINVAL;
|
||||
|
||||
if (fse->pad >= sd->entity.num_pads)
|
||||
return -EINVAL;
|
||||
|
||||
|
@ -359,6 +367,10 @@ static long subdev_do_ioctl(struct file *file, unsigned int cmd, void *arg)
|
|||
case VIDIOC_SUBDEV_ENUM_FRAME_INTERVAL: {
|
||||
struct v4l2_subdev_frame_interval_enum *fie = arg;
|
||||
|
||||
if (fie->which != V4L2_SUBDEV_FORMAT_TRY &&
|
||||
fie->which != V4L2_SUBDEV_FORMAT_ACTIVE)
|
||||
return -EINVAL;
|
||||
|
||||
if (fie->pad >= sd->entity.num_pads)
|
||||
return -EINVAL;
|
||||
|
||||
|
|
Loading…
Reference in New Issue