summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHans Verkuil2013-04-14 15:53:07 +0200
committerMauro Carvalho Chehab2013-04-15 13:28:41 +0200
commitc95789ecd5a979fd718ae09763df3fa50dd97a91 (patch)
treeb3f9fc3edd2608e1cdb4313ed89a4fd17f4481c0
parent[media] mb86a20s: Fix estimate_rate setting (diff)
downloadkernel-qcow2-linux-c95789ecd5a979fd718ae09763df3fa50dd97a91.tar.gz
kernel-qcow2-linux-c95789ecd5a979fd718ae09763df3fa50dd97a91.tar.xz
kernel-qcow2-linux-c95789ecd5a979fd718ae09763df3fa50dd97a91.zip
[media] cx25821: do not expose broken video output streams
The cx25821 driver has support for one audio output channel and two video output channels. This is implemented in a very ugly and very evil way through a custom ioctl that passes the filename of a file containing the video data, which is then read by the driver itself using vfs. There are a number of problems with this: 1) it's very ugly and very evil (I can't say that often enough). 2) V4L2 supports video output, so why not use that? 3) it's very buggy, closing the filehandle through which you passed the ioctl will oops the kernel. 4) it's a nasty security leak since this allows you to load any file in the system as a video or audio source, so in theory you can output /etc/passwd to audio or video out and record & decode it on another device. Because of all these issues we no longer register those output video nodes. Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
-rw-r--r--drivers/media/pci/cx25821/cx25821-video.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/media/pci/cx25821/cx25821-video.c b/drivers/media/pci/cx25821/cx25821-video.c
index d4de021dc844..31ce7698acb9 100644
--- a/drivers/media/pci/cx25821/cx25821-video.c
+++ b/drivers/media/pci/cx25821/cx25821-video.c
@@ -461,7 +461,7 @@ int cx25821_video_register(struct cx25821_dev *dev)
spin_lock_init(&dev->slock);
- for (i = 0; i < MAX_VID_CHANNEL_NUM - 1; ++i) {
+ for (i = 0; i < VID_CHANNEL_NUM; ++i) {
cx25821_init_controls(dev, i);
cx25821_risc_stopper(dev->pci, &dev->channels[i].vidq.stopper,