V4L/DVB (9297): cx18: Fix memory leak on card initialization failure
On error exit, the cx18_probe() function did not use the proper entry in cx18_cards[] with kfree() when card init failed; leaking memory. Signed-off-by: Andy Walls <awalls@radix.net> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
This commit is contained in:
parent
2515ddc6db
commit
ff086575b7
1 changed files with 6 additions and 2 deletions
|
@ -613,6 +613,7 @@ static int __devinit cx18_probe(struct pci_dev *dev,
|
|||
const struct pci_device_id *pci_id)
|
||||
{
|
||||
int retval = 0;
|
||||
int i;
|
||||
int vbi_buf_size;
|
||||
u32 devtype;
|
||||
struct cx18 *cx;
|
||||
|
@ -836,8 +837,11 @@ static int __devinit cx18_probe(struct pci_dev *dev,
|
|||
CX18_ERR("Error %d on initialization\n", retval);
|
||||
cx18_log_statistics(cx);
|
||||
|
||||
kfree(cx18_cards[cx18_cards_active]);
|
||||
cx18_cards[cx18_cards_active] = NULL;
|
||||
i = cx->num;
|
||||
spin_lock(&cx18_cards_lock);
|
||||
kfree(cx18_cards[i]);
|
||||
cx18_cards[i] = NULL;
|
||||
spin_unlock(&cx18_cards_lock);
|
||||
return retval;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue