diff options
author | Haibo Chen <haibo.chen@nxp.com> | 2018-11-20 14:44:22 +0800 |
---|---|---|
committer | Jason Liu <jason.hui.liu@nxp.com> | 2019-02-12 10:35:23 +0800 |
commit | d377b367a1086cf276e2f3d2a8538b867e0c46ef (patch) | |
tree | 8eaa486d1e1d0612bbfb9d2dd09860e7fef4ac72 /drivers/input/touchscreen | |
parent | 27608d8e1b696e5e4e7c7fddd3d48b703b68742a (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.c | 28 |
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; } |