media: hdpvr: fix iteration over uninitialized lists in hdpvr_probe()
authorAlexey Khoroshilov <khoroshilov@ispras.ru>
Wed, 3 Jul 2013 19:17:34 +0000 (16:17 -0300)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 27 Sep 2013 00:18:26 +0000 (17:18 -0700)
commited6db5dcac3698346227a49afb2635dfcb784057
tree78c7ebdb4ae304936689393cb4f8940c113bbb39
parentbd7dcb5af0f8771fbcf2fd999545281ec7561d3e
media: hdpvr: fix iteration over uninitialized lists in hdpvr_probe()

commit 2e923a0527ac439e135b9961e58d3acd876bba10 upstream.

free_buff_list and rec_buff_list are initialized in the middle of hdpvr_probe(),
but if something bad happens before that, error handling code calls hdpvr_delete(),
which contains iteration over the lists (via hdpvr_free_buffers()).
The patch moves the lists initialization to the beginning and by the way fixes
goto label in error handling of registering videodev.
Found by Linux Driver Verification project (linuxtesting.org).

Signed-off-by: Alexey Khoroshilov <khoroshilov@ispras.ru>
Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/media/usb/hdpvr/hdpvr-core.c