[media] ov772x: Fix memory leak in probe error path
authorLaurent Pinchart <laurent.pinchart@ideasonboard.com>
Wed, 18 Jul 2012 13:58:18 +0000 (10:58 -0300)
committerMauro Carvalho Chehab <mchehab@redhat.com>
Wed, 15 Aug 2012 20:05:02 +0000 (17:05 -0300)
The control handler isn't freed if its initialization fails. Fix it.

Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: Guennadi Liakhovetski <g.liakhovetski@gmx.de>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
drivers/media/i2c/soc_camera/ov772x.c

index 641f6f43d7eea82f2c9fc0d3a81ef3a80bf1becd..0fede50dde4b6057ba80bde26e8180b15899c8ac 100644 (file)
@@ -1098,18 +1098,17 @@ static int ov772x_probe(struct i2c_client *client,
                        V4L2_CID_BAND_STOP_FILTER, 0, 256, 1, 0);
        priv->subdev.ctrl_handler = &priv->hdl;
        if (priv->hdl.error) {
-               int err = priv->hdl.error;
-
-               kfree(priv);
-               return err;
+               ret = priv->hdl.error;
+               goto done;
        }
 
        ret = ov772x_video_probe(client);
+
+done:
        if (ret) {
                v4l2_ctrl_handler_free(&priv->hdl);
                kfree(priv);
        }
-
        return ret;
 }