diff options
| author | Vijay kumar Tumati <vtumati@codeaurora.org> | 2016-02-17 16:54:30 +0530 |
|---|---|---|
| committer | David Keitel <dkeitel@codeaurora.org> | 2016-03-23 21:21:34 -0700 |
| commit | 4f956cf49f5d5be7d7ff4558cb3f022c01da9c8e (patch) | |
| tree | 3d51226d01e7670f691000314cde45d46ab1a744 | |
| parent | e663ad89f8c5f0a8a15008c650a94f3783c5650e (diff) | |
msm: camera: Fixing memory leak issues in camera stack
Adding memory free calls to during error conditions to
fix memory leaks in platform probe.
CRs-Fixed: 975003
Change-Id: I7ecd7586e8662eaa6ec020963831e08af424be18
Signed-off-by: Vijay kumar Tumati <vtumati@codeaurora.org>
| -rw-r--r-- | drivers/media/platform/msm/camera_v2/sensor/eeprom/msm_eeprom.c | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/drivers/media/platform/msm/camera_v2/sensor/eeprom/msm_eeprom.c b/drivers/media/platform/msm/camera_v2/sensor/eeprom/msm_eeprom.c index 375d3e582168..e682646a1e47 100644 --- a/drivers/media/platform/msm/camera_v2/sensor/eeprom/msm_eeprom.c +++ b/drivers/media/platform/msm/camera_v2/sensor/eeprom/msm_eeprom.c @@ -1566,7 +1566,8 @@ static int msm_eeprom_platform_probe(struct platform_device *pdev) e_ctrl->is_supported = 0; if (!of_node) { pr_err("%s dev.of_node NULL\n", __func__); - return -EINVAL; + rc = -EINVAL; + goto ectrl_free; } /* Set platform device handle */ @@ -1578,7 +1579,8 @@ static int msm_eeprom_platform_probe(struct platform_device *pdev) struct msm_camera_cci_client), GFP_KERNEL); if (!e_ctrl->i2c_client.cci_client) { pr_err("%s failed no memory\n", __func__); - return -ENOMEM; + rc = -ENOMEM; + goto ectrl_free; } e_ctrl->eboard_info = kzalloc(sizeof( @@ -1628,7 +1630,7 @@ static int msm_eeprom_platform_probe(struct platform_device *pdev) } rc = msm_eeprom_get_dt_data(e_ctrl); - if (rc) + if (rc < 0) goto board_free; if (e_ctrl->userspace_probe == 0) { @@ -1723,6 +1725,7 @@ board_free: kfree(e_ctrl->eboard_info); cciclient_free: kfree(e_ctrl->i2c_client.cci_client); +ectrl_free: kfree(e_ctrl); return rc; } |
