Explorar o código

V4L/DVB (5554): Fix: vidioc_g_parm were not zeroing the memory

Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
Mauro Carvalho Chehab %!s(int64=18) %!d(string=hai) anos
pai
achega
2aa2342f2b
Modificáronse 1 ficheiros con 5 adicións e 2 borrados
  1. 5 2
      drivers/media/video/videodev.c

+ 5 - 2
drivers/media/video/videodev.c

@@ -1404,6 +1404,11 @@ static int __video_do_ioctl(struct inode *inode, struct file *file,
 	case VIDIOC_G_PARM:
 	{
 		struct v4l2_streamparm *p=arg;
+		__u32 type=p->type;
+
+		memset(p,0,sizeof(*p));
+		p->type=type;
+
 		if (vfd->vidioc_g_parm) {
 			ret=vfd->vidioc_g_parm(file, fh, p);
 		} else {
@@ -1415,8 +1420,6 @@ static int __video_do_ioctl(struct inode *inode, struct file *file,
 			v4l2_video_std_construct(&s, vfd->current_norm,
 						 v4l2_norm_to_name(vfd->current_norm));
 
-			memset(p,0,sizeof(*p));
-
 			p->parm.capture.timeperframe = s.frameperiod;
 			ret=0;
 		}