OSDN Git Service

ath9k_htc: release allocated buffer if timed out
authorNavid Emamdoost <navid.emamdoost@gmail.com>
Fri, 6 Sep 2019 18:26:03 +0000 (13:26 -0500)
committerKalle Valo <kvalo@codeaurora.org>
Tue, 10 Sep 2019 13:28:29 +0000 (16:28 +0300)
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.emamdoost@gmail.com>
Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
drivers/net/wireless/ath/ath9k/htc_hst.c

index 1bf63a4..d091c8e 100644 (file)
@@ -170,6 +170,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;
        }
 
@@ -205,6 +206,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;
        }
 
@@ -277,6 +279,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;
        }