[media] cx88: Fix possible leak in cx8802_probe()
authorChristian Engelmayer <cengelma@gmx.at>
Sat, 14 Feb 2015 23:12:56 +0000 (20:12 -0300)
committerMauro Carvalho Chehab <mchehab@osg.samsung.com>
Mon, 2 Mar 2015 17:47:19 +0000 (14:47 -0300)
In case allocation vb2_dma_sg_init_ctx() fails during cx8802_probe(), the
already allocated cx8802 device structure memory is not freed in the used
exit path. Thus adapt the cleanup handling accordingly. Detected by Coverity
CID 1260065.

Signed-off-by: Christian Engelmayer <cengelma@gmx.at>
Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
drivers/media/pci/cx88/cx88-mpeg.c

index a369b0840acffde2584e78bdba236eb0ed9c2e5f..98344540c51f83bb57be721a98d9c8b6288357c2 100644 (file)
@@ -732,7 +732,7 @@ static int cx8802_probe(struct pci_dev *pci_dev,
        dev->alloc_ctx = vb2_dma_sg_init_ctx(&pci_dev->dev);
        if (IS_ERR(dev->alloc_ctx)) {
                err = PTR_ERR(dev->alloc_ctx);
-               goto fail_core;
+               goto fail_dev;
        }
        dev->core = core;
 
@@ -754,6 +754,7 @@ static int cx8802_probe(struct pci_dev *pci_dev,
 
  fail_free:
        vb2_dma_sg_cleanup_ctx(dev->alloc_ctx);
+ fail_dev:
        kfree(dev);
  fail_core:
        core->dvbdev = NULL;