ath10k: drop MPDU which has discard flag set by firmware for SDIO
commit 079a108feba474b4b32bd3471db03e11f2f83b81 upstream. When the discard flag is set by the firmware for an MPDU, it should be dropped. This allows a mitigation for CVE-2020-24588 to be implemented in the firmware. Tested-on: QCA6174 hw3.2 SDIO WLAN.RMH.4.4.1-00049 Cc: stable@vger.kernel.org Signed-off-by: Wen Gong <wgong@codeaurora.org> Signed-off-by: Jouni Malinen <jouni@codeaurora.org> Link: https://lore.kernel.org/r/20210511200110.11968c725b5c.Idd166365ebea2771c0c0a38c78b5060750f90e17@changeid Signed-off-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
425cee6360
commit
c4d5271830
@ -2312,6 +2312,11 @@ static bool ath10k_htt_rx_proc_rx_ind_hl(struct ath10k_htt *htt,
|
||||
fw_desc = &rx->fw_desc;
|
||||
rx_desc_len = fw_desc->len;
|
||||
|
||||
if (fw_desc->u.bits.discard) {
|
||||
ath10k_dbg(ar, ATH10K_DBG_HTT, "htt discard mpdu\n");
|
||||
goto err;
|
||||
}
|
||||
|
||||
/* I have not yet seen any case where num_mpdu_ranges > 1.
|
||||
* qcacld does not seem handle that case either, so we introduce the
|
||||
* same limitiation here as well.
|
||||
|
@ -1282,7 +1282,19 @@ struct fw_rx_desc_base {
|
||||
#define FW_RX_DESC_UDP (1 << 6)
|
||||
|
||||
struct fw_rx_desc_hl {
|
||||
u8 info0;
|
||||
union {
|
||||
struct {
|
||||
u8 discard:1,
|
||||
forward:1,
|
||||
any_err:1,
|
||||
dup_err:1,
|
||||
reserved:1,
|
||||
inspect:1,
|
||||
extension:2;
|
||||
} bits;
|
||||
u8 info0;
|
||||
} u;
|
||||
|
||||
u8 version;
|
||||
u8 len;
|
||||
u8 flags;
|
||||
|
Loading…
x
Reference in New Issue
Block a user