Message ID | 49C2C3C8.3000300@freemail.hu (mailing list archive) |
---|---|
State | Changes Requested |
Headers | show |
On Thu, 19 Mar 2009 17:47:13 -0700 (PDT) Trent Piepho <xyzzy@speakeasy.org> wrote: > On Thu, 19 Mar 2009, [UTF-8] Németh Márton wrote: > > The gspca webcam driver does not check the .type field of struct v4l2_streamparm. > > This field is an input parameter for the driver according to V4L2 API specification, > > revision 0.24 [1]. Add the missing check. > > I think this check could go in the v4l2 core too. It already does a > similar check for QUERYBUF, QBUF, DQBUF, etc. If the driver doesn't > provide a method for ->vidioc_try_fmt_foo() then the v4l2 core will reject > a call with .type == V4L2_BUF_TYPE_foo. > > It seems like it should be ok to do this for S_PARM and G_PARM too. I agree. Could you provide such patch? Cheers, Mauro -- To unsubscribe from this list: send the line "unsubscribe linux-media" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
--- linux-2.6.29-rc8/drivers/media/video/gspca/gspca.c.orig 2009-03-14 12:29:38.000000000 +0100 +++ linux-2.6.29-rc8/drivers/media/video/gspca/gspca.c 2009-03-19 20:38:22.000000000 +0100 @@ -1320,8 +1320,9 @@ static int vidioc_g_parm(struct file *fi { struct gspca_dev *gspca_dev = priv; - memset(parm, 0, sizeof *parm); - parm->type = V4L2_BUF_TYPE_VIDEO_CAPTURE; + if (parm->type != V4L2_BUF_TYPE_VIDEO_CAPTURE) + return -EINVAL; + parm->parm.capture.readbuffers = gspca_dev->nbufread; if (gspca_dev->sd_desc->get_streamparm) {