From: Navid Emamdoost <navid.emamdo...@gmail.com>

[ Upstream commit 853acf7caf10b828102d92d05b5c101666a6142b ]

In htc_config_pipe_credits, htc_setup_complete, and htc_connect_service
if time out happens, the allocated buffer needs to be released.
Otherwise there will be memory leak.

Signed-off-by: Navid Emamdoost <navid.emamdo...@gmail.com>
Signed-off-by: Kalle Valo <kv...@codeaurora.org>
Signed-off-by: Sasha Levin <sas...@kernel.org>
---
 drivers/net/wireless/ath/ath9k/htc_hst.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/drivers/net/wireless/ath/ath9k/htc_hst.c 
b/drivers/net/wireless/ath/ath9k/htc_hst.c
index 257b6ee51e54b..1af216aa5adae 100644
--- a/drivers/net/wireless/ath/ath9k/htc_hst.c
+++ b/drivers/net/wireless/ath/ath9k/htc_hst.c
@@ -175,6 +175,7 @@ static int htc_config_pipe_credits(struct htc_target 
*target)
        time_left = wait_for_completion_timeout(&target->cmd_wait, HZ);
        if (!time_left) {
                dev_err(target->dev, "HTC credit config timeout\n");
+               kfree_skb(skb);
                return -ETIMEDOUT;
        }
 
@@ -211,6 +212,7 @@ static int htc_setup_complete(struct htc_target *target)
        time_left = wait_for_completion_timeout(&target->cmd_wait, HZ);
        if (!time_left) {
                dev_err(target->dev, "HTC start timeout\n");
+               kfree_skb(skb);
                return -ETIMEDOUT;
        }
 
@@ -284,6 +286,7 @@ int htc_connect_service(struct htc_target *target,
        if (!time_left) {
                dev_err(target->dev, "Service connection timeout for: %d\n",
                        service_connreq->service_id);
+               kfree_skb(skb);
                return -ETIMEDOUT;
        }
 
-- 
2.25.1



Reply via email to