Merge "qcacld-3.0: Drop mcast and plaintext frags in protected network" into wlan-cld3.driver.lnx.2.0.r18

This commit is contained in:
Linux Build Service Account authored and Gerrit - the friendly Code Review server committed 2021-05-25 14:52:17 -07:00
commit c9f9697fde
1 file changed
+24
+24
View File
@@ -414,6 +414,8 @@ ol_rx_reorder_store_frag(ol_txrx_pdev_handle pdev,
struct ol_rx_reorder_array_elem_t *rx_reorder_array_elem;
uint16_t frxseq, rxseq, seq;
htt_pdev_handle htt_pdev = pdev->htt_pdev;
void *rx_desc;
uint8_t index;
seq = seq_num & peer->tids_rx_reorder[tid].win_sz_mask;
qdf_assert(seq == 0);
@@ -427,6 +429,28 @@ ol_rx_reorder_store_frag(ol_txrx_pdev_handle pdev,
IEEE80211_SEQ_FRAG_MASK;
more_frag = mac_hdr->i_fc[1] & IEEE80211_FC1_MORE_FRAG;
rx_desc = htt_rx_msdu_desc_retrieve(htt_pdev, frag);
qdf_assert(htt_rx_msdu_has_wlan_mcast_flag(htt_pdev, rx_desc));
index = htt_rx_msdu_is_wlan_mcast(htt_pdev, rx_desc) ?
txrx_sec_mcast : txrx_sec_ucast;
/*
* Multicast/Broadcast frames should not be fragmented so drop
* such frames.
*/
if (index != txrx_sec_ucast) {
ol_rx_frames_free(htt_pdev, frag);
return;
}
if (peer->security[index].sec_type != htt_sec_type_none &&
!htt_rx_mpdu_is_encrypted(htt_pdev, rx_desc)) {
ol_txrx_err("Unencrypted fragment received in security mode %d",
peer->security[index].sec_type);
ol_rx_frames_free(htt_pdev, frag);
return;
}
if ((!more_frag) && (!fragno) && (!rx_reorder_array_elem->head)) {
rx_reorder_array_elem->head = frag;
rx_reorder_array_elem->tail = frag;