Commit daf8fb42 authored by Andrei Otcheretianski's avatar Andrei Otcheretianski Committed by Johannes Berg

wifi: mac80211: Don't translate MLD addresses for multicast

MLD address translation should be done only for individually addressed
frames. Otherwise, AAD calculation would be wrong and the decryption
would fail.

Fixes: e66b7920 ("wifi: mac80211: fix initialization of rx->link and rx->link_sta")
Signed-off-by: default avatarAndrei Otcheretianski <andrei.otcheretianski@intel.com>
Link: https://lore.kernel.org/r/20230214101048.792414-1-andrei.otcheretianski@intel.comSigned-off-by: default avatarJohannes Berg <johannes.berg@intel.com>
parent d99975c4
...@@ -4882,7 +4882,8 @@ static bool ieee80211_prepare_and_rx_handle(struct ieee80211_rx_data *rx, ...@@ -4882,7 +4882,8 @@ static bool ieee80211_prepare_and_rx_handle(struct ieee80211_rx_data *rx,
hdr = (struct ieee80211_hdr *)rx->skb->data; hdr = (struct ieee80211_hdr *)rx->skb->data;
} }
if (unlikely(rx->sta && rx->sta->sta.mlo)) { if (unlikely(rx->sta && rx->sta->sta.mlo) &&
is_unicast_ether_addr(hdr->addr1)) {
/* translate to MLD addresses */ /* translate to MLD addresses */
if (ether_addr_equal(link->conf->addr, hdr->addr1)) if (ether_addr_equal(link->conf->addr, hdr->addr1))
ether_addr_copy(hdr->addr1, rx->sdata->vif.addr); ether_addr_copy(hdr->addr1, rx->sdata->vif.addr);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment