提交 21dbcd33 编写于 作者: N Navid Emamdoost 提交者: Xie XiuQi

ath9k_htc: release allocated buffer if timed out

mainline inclusion
from mainline-v5.4-rc1
commit 853acf7caf10b828102d92d05b5c101666a6142b
category: bugfix
bugzilla: 13690
CVE: CVE-2019-19073

-------------------------------------------------

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: NNavid Emamdoost <navid.emamdoost@gmail.com>
Signed-off-by: NKalle Valo <kvalo@codeaurora.org>
Signed-off-by: NYang Yingliang <yangyingliang@huawei.com>
Reviewed-by: NKefeng Wang <wangkefeng.wang@huawei.com>
Signed-off-by: NYang Yingliang <yangyingliang@huawei.com>
上级 27f5417e
...@@ -170,6 +170,7 @@ static int htc_config_pipe_credits(struct htc_target *target) ...@@ -170,6 +170,7 @@ static int htc_config_pipe_credits(struct htc_target *target)
time_left = wait_for_completion_timeout(&target->cmd_wait, HZ); time_left = wait_for_completion_timeout(&target->cmd_wait, HZ);
if (!time_left) { if (!time_left) {
dev_err(target->dev, "HTC credit config timeout\n"); dev_err(target->dev, "HTC credit config timeout\n");
kfree_skb(skb);
return -ETIMEDOUT; return -ETIMEDOUT;
} }
...@@ -205,6 +206,7 @@ static int htc_setup_complete(struct htc_target *target) ...@@ -205,6 +206,7 @@ static int htc_setup_complete(struct htc_target *target)
time_left = wait_for_completion_timeout(&target->cmd_wait, HZ); time_left = wait_for_completion_timeout(&target->cmd_wait, HZ);
if (!time_left) { if (!time_left) {
dev_err(target->dev, "HTC start timeout\n"); dev_err(target->dev, "HTC start timeout\n");
kfree_skb(skb);
return -ETIMEDOUT; return -ETIMEDOUT;
} }
...@@ -277,6 +279,7 @@ int htc_connect_service(struct htc_target *target, ...@@ -277,6 +279,7 @@ int htc_connect_service(struct htc_target *target,
if (!time_left) { if (!time_left) {
dev_err(target->dev, "Service connection timeout for: %d\n", dev_err(target->dev, "Service connection timeout for: %d\n",
service_connreq->service_id); service_connreq->service_id);
kfree_skb(skb);
return -ETIMEDOUT; return -ETIMEDOUT;
} }
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册