summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVijay kumar Tumati <vtumati@codeaurora.org>2016-02-17 16:54:30 +0530
committerDavid Keitel <dkeitel@codeaurora.org>2016-03-23 21:21:34 -0700
commit4f956cf49f5d5be7d7ff4558cb3f022c01da9c8e (patch)
tree3d51226d01e7670f691000314cde45d46ab1a744
parente663ad89f8c5f0a8a15008c650a94f3783c5650e (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.c9
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;
}