| From 666c11e58b959964146652d65b5c6af8728dc026 Mon Sep 17 00:00:00 2001 |
| From: Sasha Levin <sashal@kernel.org> |
| Date: Mon, 29 Mar 2021 05:01:54 -0700 |
| Subject: ath10k: Fix a use after free in ath10k_htc_send_bundle |
| |
| From: Lv Yunlong <lyl2019@mail.ustc.edu.cn> |
| |
| [ Upstream commit 8392df5d7e0b6a7d21440da1fc259f9938f4dec3 ] |
| |
| In ath10k_htc_send_bundle, the bundle_skb could be freed by |
| dev_kfree_skb_any(bundle_skb). But the bundle_skb is used later |
| by bundle_skb->len. |
| |
| As skb_len = bundle_skb->len, my patch replaces bundle_skb->len to |
| skb_len after the bundle_skb was freed. |
| |
| Fixes: c8334512f3dd1 ("ath10k: add htt TX bundle for sdio") |
| Signed-off-by: Lv Yunlong <lyl2019@mail.ustc.edu.cn> |
| Signed-off-by: Kalle Valo <kvalo@codeaurora.org> |
| Link: https://lore.kernel.org/r/20210329120154.8963-1-lyl2019@mail.ustc.edu.cn |
| Signed-off-by: Sasha Levin <sashal@kernel.org> |
| --- |
| drivers/net/wireless/ath/ath10k/htc.c | 2 +- |
| 1 file changed, 1 insertion(+), 1 deletion(-) |
| |
| diff --git a/drivers/net/wireless/ath/ath10k/htc.c b/drivers/net/wireless/ath/ath10k/htc.c |
| index 31df6dd04bf6..540dd59112a5 100644 |
| --- a/drivers/net/wireless/ath/ath10k/htc.c |
| +++ b/drivers/net/wireless/ath/ath10k/htc.c |
| @@ -665,7 +665,7 @@ static int ath10k_htc_send_bundle(struct ath10k_htc_ep *ep, |
| |
| ath10k_dbg(ar, ATH10K_DBG_HTC, |
| "bundle tx status %d eid %d req count %d count %d len %d\n", |
| - ret, ep->eid, skb_queue_len(&ep->tx_req_head), cn, bundle_skb->len); |
| + ret, ep->eid, skb_queue_len(&ep->tx_req_head), cn, skb_len); |
| return ret; |
| } |
| |
| -- |
| 2.30.2 |
| |