Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit f796804f authored by Hans Verkuil's avatar Hans Verkuil Committed by Mauro Carvalho Chehab
Browse files

V4L/DVB (8526): saa7146: fix VIDIOC_ENUM_FMT



VIDIOC_ENUM_FMT should keep the index and type fields. Instead,
type was zeroed.

Signed-off-by: default avatarHans Verkuil <hverkuil@xs4all.nl>
Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@infradead.org>
parent de1e575d
Loading
Loading
Loading
Loading
+7 −10
Original line number Diff line number Diff line
@@ -958,21 +958,18 @@ int saa7146_video_do_ioctl(struct inode *inode, struct file *file, unsigned int
	case VIDIOC_ENUM_FMT:
	{
		struct v4l2_fmtdesc *f = arg;
		int index;

		switch (f->type) {
		case V4L2_BUF_TYPE_VIDEO_CAPTURE:
		case V4L2_BUF_TYPE_VIDEO_OVERLAY: {
			index = f->index;
			if (index < 0 || index >= NUM_FORMATS) {
		case V4L2_BUF_TYPE_VIDEO_OVERLAY:
			if (f->index >= NUM_FORMATS)
				return -EINVAL;
			}
			memset(f,0,sizeof(*f));
			f->index = index;
			strlcpy((char *)f->description,formats[index].name,sizeof(f->description));
			f->pixelformat = formats[index].pixelformat;
			strlcpy((char *)f->description, formats[f->index].name,
					sizeof(f->description));
			f->pixelformat = formats[f->index].pixelformat;
			f->flags = 0;
			memset(f->reserved, 0, sizeof(f->reserved));
			break;
		}
		default:
			return -EINVAL;
		}