linux/drivers/media/usb/ttusb-dec
Alexey Khoroshilov cf732b5fa3 [media] dvb-usb: fix error handling in ttusb_dec_probe()
There is an asymmetry in ttusb_dec_init_usb()-ttusb_init_rc()
and ttusb_dec_exit_usb()-ttusb_dec_exit_rc() in terms of resources
allocated-deallocated. irq_urb and irq_buffer are allocated in
ttusb_dec_init_usb(), while they are deallocated in ttusb_dec_exit_rc().
As a result there is a leak of them in ttusb_dec_probe().
The patch fixes the asymmetry and a leak on a failure path in ttusb_dec_init_usb().
By the way, it
- removes usage of -1 as a custom error code,
- replaces GFP_ATOMIC by GFP_KERNEL in usb_alloc_coherent() in ttusb_dec_init_usb()
  as soon as all other memory allocation done with GFP_KERNEL;
- refactors ttusb_dec_boot_dsp() in an equivalent way except for returning 0
  instead of 1 if ttusb_dec_boot_dsp() succeed in (!mode) branch.
Found by Linux Driver Verification project (linuxtesting.org).

Signed-off-by: Alexey Khoroshilov <khoroshilov@ispras.ru>
Signed-off-by: Michael Krufky <mkrufky@linuxtv.org>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
2013-10-03 07:33:59 -03:00
..
Kconfig [media] dvb-usb: move it to drivers/media/usb/dvb-usb 2012-08-13 23:26:31 -03:00
Makefile [media] dvb-usb: move it to drivers/media/usb/dvb-usb 2012-08-13 23:26:31 -03:00
ttusb_dec.c [media] dvb-usb: fix error handling in ttusb_dec_probe() 2013-10-03 07:33:59 -03:00
ttusbdecfe.c [media] dvb-usb: move it to drivers/media/usb/dvb-usb 2012-08-13 23:26:31 -03:00
ttusbdecfe.h [media] dvb-usb: move it to drivers/media/usb/dvb-usb 2012-08-13 23:26:31 -03:00