summaryrefslogtreecommitdiff
path: root/drivers/input/touchscreen
diff options
context:
space:
mode:
authorHaibo Chen <haibo.chen@nxp.com>2018-11-20 14:44:22 +0800
committerJason Liu <jason.hui.liu@nxp.com>2019-02-12 10:35:23 +0800
commitd377b367a1086cf276e2f3d2a8538b867e0c46ef (patch)
tree8eaa486d1e1d0612bbfb9d2dd09860e7fef4ac72 /drivers/input/touchscreen
parent27608d8e1b696e5e4e7c7fddd3d48b703b68742a (diff)
MLK-20207-3 input: synaptics_dsx_i2c: fix coverity resource leak issue.
CID 3869707: Resource leak (RESOURCE_LEAK) 13. leaked_storage: Variable fhandler going out of scope leaks the storage it points to Signed-off-by: Haibo Chen <haibo.chen@nxp.com>
Diffstat (limited to 'drivers/input/touchscreen')
-rw-r--r--drivers/input/touchscreen/synaptics_dsx/synaptics_dsx_i2c.c28
1 files changed, 21 insertions, 7 deletions
diff --git a/drivers/input/touchscreen/synaptics_dsx/synaptics_dsx_i2c.c b/drivers/input/touchscreen/synaptics_dsx/synaptics_dsx_i2c.c
index 719412249d57..c31c13ab407e 100644
--- a/drivers/input/touchscreen/synaptics_dsx/synaptics_dsx_i2c.c
+++ b/drivers/input/touchscreen/synaptics_dsx/synaptics_dsx_i2c.c
@@ -2528,8 +2528,11 @@ rescan_pdt:
retval = synaptics_rmi4_f01_init(rmi4_data,
fhandler, &rmi_fd, intr_count);
- if (retval < 0)
+ if (retval < 0) {
+ kfree(fhandler);
+ fhandler = NULL;
return retval;
+ }
retval = synaptics_rmi4_check_status(rmi4_data,
&was_in_bl_mode);
@@ -2537,6 +2540,8 @@ rescan_pdt:
dev_err(&rmi4_data->i2c_client->dev,
"%s: Failed to check status\n",
__func__);
+ kfree(fhandler);
+ fhandler = NULL;
return retval;
}
@@ -2546,8 +2551,11 @@ rescan_pdt:
goto rescan_pdt;
}
- if (rmi4_data->flash_prog_mode)
+ if (rmi4_data->flash_prog_mode) {
+ kfree(fhandler);
+ fhandler = NULL;
goto flash_prog_mode;
+ }
break;
case SYNAPTICS_RMI4_F11:
@@ -2566,8 +2574,12 @@ rescan_pdt:
retval = synaptics_rmi4_f11_init(rmi4_data,
fhandler, &rmi_fd, intr_count);
- if (retval < 0)
+ if (retval < 0) {
+ kfree(fhandler);
+ fhandler = NULL;
return retval;
+ }
+
break;
case SYNAPTICS_RMI4_F12:
if (rmi_fd.intr_src_count == 0)
@@ -2585,8 +2597,12 @@ rescan_pdt:
retval = synaptics_rmi4_f12_init(rmi4_data,
fhandler, &rmi_fd, intr_count);
- if (retval < 0)
+ if (retval < 0) {
+ kfree(fhandler);
+ fhandler = NULL;
return retval;
+ }
+
break;
case SYNAPTICS_RMI4_F1A:
if (rmi_fd.intr_src_count == 0)
@@ -2605,13 +2621,11 @@ rescan_pdt:
retval = synaptics_rmi4_f1a_init(rmi4_data,
fhandler, &rmi_fd, intr_count);
if (retval < 0) {
-#ifdef IGNORE_FN_INIT_FAILURE
kfree(fhandler);
fhandler = NULL;
-#else
return retval;
-#endif
}
+
break;
}