forked from Minki/linux
[media] v4l: Check pad arguments for [gs]_frame_interval
VIDIOC_SUBDEV_[GS]_FRAME_INTERVAL IOCTLs argument structs contain the pad field but the validity check was missing. There should be no implications security-wise from this since no driver currently uses the pad field in the struct. Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com> Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
This commit is contained in:
parent
6296cba83b
commit
743e18377c
@ -305,11 +305,23 @@ static long subdev_do_ioctl(struct file *file, unsigned int cmd, void *arg)
|
|||||||
fse);
|
fse);
|
||||||
}
|
}
|
||||||
|
|
||||||
case VIDIOC_SUBDEV_G_FRAME_INTERVAL:
|
case VIDIOC_SUBDEV_G_FRAME_INTERVAL: {
|
||||||
return v4l2_subdev_call(sd, video, g_frame_interval, arg);
|
struct v4l2_subdev_frame_interval *fi = arg;
|
||||||
|
|
||||||
|
if (fi->pad >= sd->entity.num_pads)
|
||||||
|
return -EINVAL;
|
||||||
|
|
||||||
|
return v4l2_subdev_call(sd, video, g_frame_interval, arg);
|
||||||
|
}
|
||||||
|
|
||||||
|
case VIDIOC_SUBDEV_S_FRAME_INTERVAL: {
|
||||||
|
struct v4l2_subdev_frame_interval *fi = arg;
|
||||||
|
|
||||||
|
if (fi->pad >= sd->entity.num_pads)
|
||||||
|
return -EINVAL;
|
||||||
|
|
||||||
case VIDIOC_SUBDEV_S_FRAME_INTERVAL:
|
|
||||||
return v4l2_subdev_call(sd, video, s_frame_interval, arg);
|
return v4l2_subdev_call(sd, video, s_frame_interval, arg);
|
||||||
|
}
|
||||||
|
|
||||||
case VIDIOC_SUBDEV_ENUM_FRAME_INTERVAL: {
|
case VIDIOC_SUBDEV_ENUM_FRAME_INTERVAL: {
|
||||||
struct v4l2_subdev_frame_interval_enum *fie = arg;
|
struct v4l2_subdev_frame_interval_enum *fie = arg;
|
||||||
|
Loading…
Reference in New Issue
Block a user