V4L/DVB (7580): Fix concurrent read from /proc/videocodecs
authorAlexey Dobriyan <adobriyan@gmail.com>
Sun, 13 Apr 2008 11:48:43 +0000 (08:48 -0300)
committerMauro Carvalho Chehab <mchehab@infradead.org>
Thu, 24 Apr 2008 17:09:40 +0000 (14:09 -0300)
commit9faa2d75822e1950b3aacc8ccbdf0cdb595e47de
treeda40b056cfb87ccad6414f0dd2b37abbe019fe35
parentb9bc07a006ae94d7b3dd5db873bcf10ceb749253
V4L/DVB (7580): Fix concurrent read from /proc/videocodecs

Observation one: ->write_proc and ->data assignments aren't needed. Removed.
Observation two: codecs lists are unprotected. Patch doesn't fix this.
Observation three:
/proc/videocodecs printout is done to temporary _global_ buffer which
is freed in between. Consequently, two users hitting this file can
screwup each other.

Steps to reproduce:

modprobe videocodec
while true; do cat /proc/videocodecs &>/dev/null; done &
while true; do cat /proc/videocodecs &>/dev/null; done &

The fix is switching to seq_files, this removes code, especially some
line-length "logic".

Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com>
Acked-by: Jan Kara <jack@suse.cz>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
drivers/media/video/videocodec.c