[media] radio-isa: fix memory leak
authorHans Verkuil <hans.verkuil@cisco.com>
Sat, 28 Apr 2012 11:09:48 +0000 (08:09 -0300)
committerMauro Carvalho Chehab <mchehab@redhat.com>
Mon, 7 May 2012 18:23:31 +0000 (15:23 -0300)
If there is an error when creating controls the v4l2_ctrl_handler_free
function must be called.

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
drivers/media/radio/radio-isa.c

index ed9039f..c7450fb 100644 (file)
@@ -274,23 +274,21 @@ int radio_isa_common_probe(struct radio_isa_card *isa, struct device *pdev,
                res = ops->s_stereo(isa, isa->stereo);
        if (res < 0) {
                v4l2_err(v4l2_dev, "Could not setup card\n");
-               goto err_node_reg;
+               goto err_hdl;
        }
        res = video_register_device(&isa->vdev, VFL_TYPE_RADIO, radio_nr);
 
        if (res < 0) {
                v4l2_err(v4l2_dev, "Could not register device node\n");
-               goto err_node_reg;
+               goto err_hdl;
        }
 
        v4l2_info(v4l2_dev, "Initialized radio card %s on port 0x%03x\n",
                        drv->card, isa->io);
        return 0;
 
-err_node_reg:
-       v4l2_ctrl_handler_free(&isa->hdl);
 err_hdl:
-       v4l2_device_unregister(&isa->v4l2_dev);
+       v4l2_ctrl_handler_free(&isa->hdl);
 err_dev_reg:
        release_region(isa->io, region_size);
        kfree(isa);