V4L/DVB: video_ioctl2: do not replace arg with NULL for _IO() ioctls
authorHans Verkuil <hverkuil@xs4all.nl>
Tue, 6 Apr 2010 11:12:21 +0000 (08:12 -0300)
committerMauro Carvalho Chehab <mchehab@redhat.com>
Wed, 19 May 2010 15:57:06 +0000 (12:57 -0300)
If the ioctl was defined without direction (e.g. _IO('o', 25)), then
the arg as passed to vidioc_default was NULL instead of the original
argument.

Several ioctls in e.g. include/linux/dvb/video.h and audio.h use this type
of ioctl to pass simple numerical values to the driver.

Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
drivers/media/video/v4l2-ioctl.c

index 7d59c10..d6975f9 100644 (file)
@@ -2006,7 +2006,7 @@ long video_ioctl2(struct file *file,
 {
        char    sbuf[128];
        void    *mbuf = NULL;
-       void    *parg = NULL;
+       void    *parg = (void *)arg;
        long    err  = -EINVAL;
        int     is_ext_ctrl;
        size_t  ctrls_size = 0;