diff options
author | Gustavo A. R. Silva <gustavo@embeddedor.com> | 2019-05-27 14:10:50 -0400 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2019-06-03 08:24:57 -0400 |
commit | 2649939ad750db48f94d3cdab26e3a0115672e6b (patch) | |
tree | 5a4b87456663b65e09f9af8e8d5da40f33141504 /drivers/usb | |
parent | f2c7c76c5d0a443053e94adb9f0918fa2fb85c3a (diff) |
usb: typec: ucsi: ccg: fix memory leak in do_flash
In case memory resources for *fw* were successfully allocated,
release them before return.
Addresses-Coverity-ID: 1445499 ("Resource leak")
Fixes: 5c9ae5a87573 ("usb: typec: ucsi: ccg: add firmware flashing support")
Signed-off-by: Gustavo A. R. Silva <gustavo@embeddedor.com>
Acked-by: Heikki Krogerus <heikki.krogerus@linux.intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/usb')
-rw-r--r-- | drivers/usb/typec/ucsi/ucsi_ccg.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/drivers/usb/typec/ucsi/ucsi_ccg.c b/drivers/usb/typec/ucsi/ucsi_ccg.c index 9d46aa9e4e35..bf63074675fc 100644 --- a/drivers/usb/typec/ucsi/ucsi_ccg.c +++ b/drivers/usb/typec/ucsi/ucsi_ccg.c | |||
@@ -862,8 +862,10 @@ static int do_flash(struct ucsi_ccg *uc, enum enum_flash_mode mode) | |||
862 | 862 | ||
863 | not_signed_fw: | 863 | not_signed_fw: |
864 | wr_buf = kzalloc(CCG4_ROW_SIZE + 4, GFP_KERNEL); | 864 | wr_buf = kzalloc(CCG4_ROW_SIZE + 4, GFP_KERNEL); |
865 | if (!wr_buf) | 865 | if (!wr_buf) { |
866 | return -ENOMEM; | 866 | err = -ENOMEM; |
867 | goto release_fw; | ||
868 | } | ||
867 | 869 | ||
868 | err = ccg_cmd_enter_flashing(uc); | 870 | err = ccg_cmd_enter_flashing(uc); |
869 | if (err) | 871 | if (err) |