]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
wifi: ath10k: fix NULL pointer dereference in ath10k_wmi_tlv_op_pull_mgmt_tx_compl_ev()
authorXingyuan Mo <hdthky0@gmail.com>
Sun, 17 Dec 2023 11:29:01 +0000 (13:29 +0200)
committerSasha Levin <sashal@kernel.org>
Tue, 26 Mar 2024 22:21:48 +0000 (18:21 -0400)
[ Upstream commit ad25ee36f00172f7d53242dc77c69fff7ced0755 ]

We should check whether the WMI_TLV_TAG_STRUCT_MGMT_TX_COMPL_EVENT tlv is
present before accessing it, otherwise a null pointer deference error will
occur.

Fixes: dc405152bb64 ("ath10k: handle mgmt tx completion event")
Signed-off-by: Xingyuan Mo <hdthky0@gmail.com>
Acked-by: Jeff Johnson <quic_jjohnson@quicinc.com>
Signed-off-by: Kalle Valo <quic_kvalo@quicinc.com>
Link: https://msgid.link/20231208043433.271449-1-hdthky0@gmail.com
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/net/wireless/ath/ath10k/wmi-tlv.c

index 4f2fbc610d798f1431c1654a8bea35b692568dfa..0eeb74245372fb06b60dfb4f441643b626570d2c 100644 (file)
@@ -844,6 +844,10 @@ ath10k_wmi_tlv_op_pull_mgmt_tx_compl_ev(struct ath10k *ar, struct sk_buff *skb,
        }
 
        ev = tb[WMI_TLV_TAG_STRUCT_MGMT_TX_COMPL_EVENT];
+       if (!ev) {
+               kfree(tb);
+               return -EPROTO;
+       }
 
        arg->desc_id = ev->desc_id;
        arg->status = ev->status;