diff options
author | Mauro Carvalho Chehab <mchehab@infradead.org> | 2007-10-13 10:49:52 -0400 |
---|---|---|
committer | Mauro Carvalho Chehab <mchehab@infradead.org> | 2007-10-13 10:49:52 -0400 |
commit | ebd0790c91fedf5508ef49a13527bc386d18e0d9 (patch) | |
tree | 0981f94ff8ac7722ee799346b67d07c4440e82f4 | |
parent | 00ec9335c25264e4979a269b9b9df45a25f417e9 (diff) | |
download | mediapointer-dvb-s2-ebd0790c91fedf5508ef49a13527bc386d18e0d9.tar.gz mediapointer-dvb-s2-ebd0790c91fedf5508ef49a13527bc386d18e0d9.tar.bz2 |
Double-free in cx23885_initdev
From: Florin Malita <fmalita@gmail.com>
Both cx23885_initdev and cx23885_dev_setup free the device in their
error path so a failure in the latter causes a double-free. Since
cx23885_dev_setup is only called from cx23885_initdev, it should be safe
to remove its deallocation and leave the cleanup up to the allocating
function.
Coverity CID 1922.
Signed-off-by: Florin Malita <fmalita@gmail.com>
CC: Steven Toth <stoth@hauppauge.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
-rw-r--r-- | linux/drivers/media/video/cx23885/cx23885-core.c | 6 |
1 files changed, 1 insertions, 5 deletions
diff --git a/linux/drivers/media/video/cx23885/cx23885-core.c b/linux/drivers/media/video/cx23885/cx23885-core.c index 03ed18894..1ffc9695e 100644 --- a/linux/drivers/media/video/cx23885/cx23885-core.c +++ b/linux/drivers/media/video/cx23885/cx23885-core.c @@ -794,7 +794,7 @@ static int cx23885_dev_setup(struct cx23885_dev *dev) dev->pci->subsystem_device); cx23885_devcount--; - goto fail_free; + return -ENODEV; } /* PCIe stuff */ @@ -836,10 +836,6 @@ static int cx23885_dev_setup(struct cx23885_dev *dev) } return 0; - -fail_free: - kfree(dev); - return -ENODEV; } void cx23885_dev_unregister(struct cx23885_dev *dev) |