aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/media/i2c/soc_camera/ov772x.c
diff options
context:
space:
mode:
authorLaurent Pinchart <laurent.pinchart@ideasonboard.com>2012-07-18 10:58:18 -0300
committerMauro Carvalho Chehab <mchehab@redhat.com>2012-08-15 17:05:02 -0300
commitedff996eb942ce5595e9b60a0e06586dcc41b19b (patch)
tree3db011ebc7a99c04a1e94b722c9a393ba61ea3f6 /drivers/media/i2c/soc_camera/ov772x.c
parent[media] soc-camera: Push probe-time power management to drivers (diff)
downloadlinux-dev-edff996eb942ce5595e9b60a0e06586dcc41b19b.tar.xz
linux-dev-edff996eb942ce5595e9b60a0e06586dcc41b19b.zip
[media] ov772x: Fix memory leak in probe error path
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>
Diffstat (limited to 'drivers/media/i2c/soc_camera/ov772x.c')
-rw-r--r--drivers/media/i2c/soc_camera/ov772x.c9
1 files changed, 4 insertions, 5 deletions
diff --git a/drivers/media/i2c/soc_camera/ov772x.c b/drivers/media/i2c/soc_camera/ov772x.c
index 641f6f43d7ee..0fede50dde4b 100644
--- a/drivers/media/i2c/soc_camera/ov772x.c
+++ b/drivers/media/i2c/soc_camera/ov772x.c
@@ -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;
}