mt76: only access ieee80211_hdr after mt76_insert_ccmp_hdr
authorRyder Lee <ryder.lee@mediatek.com>
Fri, 3 Dec 2021 06:04:54 +0000 (14:04 +0800)
committerFelix Fietkau <nbd@nbd.name>
Sun, 19 Dec 2021 14:24:02 +0000 (15:24 +0100)
Get rid of unsafe access since mt76_insert_ccmp_hdr moves the header.

Signed-off-by: Ryder Lee <ryder.lee@mediatek.com>
Signed-off-by: Felix Fietkau <nbd@nbd.name>
drivers/net/wireless/mediatek/mt76/mt7915/mac.c
drivers/net/wireless/mediatek/mt76/mt7921/mac.c

index c15beb4..a1556fe 100644 (file)
@@ -777,7 +777,7 @@ mt7915_mac_fill_rx(struct mt7915_dev *dev, struct sk_buff *skb)
        }
 
        if (!hdr_trans) {
-               struct ieee80211_hdr *hdr = mt76_skb_get_hdr(skb);
+               struct ieee80211_hdr *hdr;
 
                if (insert_ccmp_hdr) {
                        u8 key_id = FIELD_GET(MT_RXD1_NORMAL_KEY_ID, rxd1);
@@ -785,6 +785,7 @@ mt7915_mac_fill_rx(struct mt7915_dev *dev, struct sk_buff *skb)
                        mt76_insert_ccmp_hdr(skb, key_id);
                }
 
+               hdr = mt76_skb_get_hdr(skb);
                fc = hdr->frame_control;
                if (ieee80211_is_data_qos(fc)) {
                        seq_ctrl = le16_to_cpu(hdr->seq_ctrl);
index 30cce57..edf54b1 100644 (file)
@@ -772,7 +772,7 @@ mt7921_mac_fill_rx(struct mt7921_dev *dev, struct sk_buff *skb)
        }
 
        if (!hdr_trans) {
-               struct ieee80211_hdr *hdr = mt76_skb_get_hdr(skb);
+               struct ieee80211_hdr *hdr;
 
                if (insert_ccmp_hdr) {
                        u8 key_id = FIELD_GET(MT_RXD1_NORMAL_KEY_ID, rxd1);