Skip to content

Commit

Permalink
V4L/DVB (11260): v4l2-ioctl: Check format for S_PARM and G_PARM
Browse files Browse the repository at this point in the history
Return EINVAL if VIDIOC_S/G_PARM is called for a buffer type that the
driver doesn't define a ->vidioc_try_fmt_XXX() method for.  Several other
ioctls, like QUERYBUF, QBUF, and DQBUF, etc.  do this too.  It saves each
driver from having to check if the buffer type is one that it supports.

Signed-off-by: Trent Piepho <xyzzy@speakeasy.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
  • Loading branch information
Trent Piepho authored and Mauro Carvalho Chehab committed Mar 30, 2009
1 parent 3fd8ab3 commit 34796bc
Showing 1 changed file with 7 additions and 0 deletions.
7 changes: 7 additions & 0 deletions drivers/media/video/v4l2-ioctl.c
Original file line number Diff line number Diff line change
Expand Up @@ -1551,6 +1551,9 @@ static long __video_do_ioctl(struct file *file,
struct v4l2_streamparm *p = arg;

if (ops->vidioc_g_parm) {
ret = check_fmt(ops, p->type);
if (ret)
break;
ret = ops->vidioc_g_parm(file, fh, p);
} else {
if (p->type != V4L2_BUF_TYPE_VIDEO_CAPTURE)
Expand All @@ -1570,6 +1573,10 @@ static long __video_do_ioctl(struct file *file,

if (!ops->vidioc_s_parm)
break;
ret = check_fmt(ops, p->type);
if (ret)
break;

dbgarg(cmd, "type=%d\n", p->type);
ret = ops->vidioc_s_parm(file, fh, p);
break;
Expand Down

0 comments on commit 34796bc

Please sign in to comment.