diff options
author | Laurent Pinchart <laurent.pinchart@ideasonboard.com> | 2012-07-18 10:58:18 -0300 |
---|---|---|
committer | Mauro Carvalho Chehab <mchehab@redhat.com> | 2012-08-15 17:05:02 -0300 |
commit | edff996eb942ce5595e9b60a0e06586dcc41b19b (patch) | |
tree | 3db011ebc7a99c04a1e94b722c9a393ba61ea3f6 /drivers/media/i2c/soc_camera | |
parent | 4bbc6d52e61a8a9c19fcc859c4acab89cb8cd4e5 (diff) |
[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')
-rw-r--r-- | drivers/media/i2c/soc_camera/ov772x.c | 9 |
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; } |