mac80211: fix wiphy supported_band access
authorLorenzo Bianconi <lorenzo.bianconi83@gmail.com>
Fri, 19 Feb 2016 11:18:01 +0000 (12:18 +0100)
committerJohannes Berg <johannes.berg@intel.com>
Wed, 24 Feb 2016 08:04:38 +0000 (09:04 +0100)
Fix wiphy supported_band access in tx radiotap parsing introduced
in commit 5ec3aed9ba4c ("mac80211: Parse legacy and HT rate in
injected frames"). In particular, info->band is always set to 0
(IEEE80211_BAND_2GHZ) since it has not assigned yet.
This cause a kernel crash on 5GHz only devices.
Move ieee80211_parse_tx_radiotap() after info->band assignment

Signed-off-by: Lorenzo Bianconi <lorenzo.bianconi83@gmail.com>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
net/mac80211/tx.c

index 7bb67fa9f4d26ee5acf28b411b8558f4420f40c0..3a7475ff1a413c1dd7281af1c5483c64583aa9cd 100644 (file)
@@ -1892,10 +1892,6 @@ netdev_tx_t ieee80211_monitor_start_xmit(struct sk_buff *skb,
        info->flags = IEEE80211_TX_CTL_REQ_TX_STATUS |
                      IEEE80211_TX_CTL_INJECTED;
 
-       /* process and remove the injection radiotap header */
-       if (!ieee80211_parse_tx_radiotap(local, skb))
-               goto fail;
-
        rcu_read_lock();
 
        /*
@@ -1957,6 +1953,11 @@ netdev_tx_t ieee80211_monitor_start_xmit(struct sk_buff *skb,
                goto fail_rcu;
 
        info->band = chandef->chan->band;
+
+       /* process and remove the injection radiotap header */
+       if (!ieee80211_parse_tx_radiotap(local, skb))
+               goto fail_rcu;
+
        ieee80211_xmit(sdata, NULL, skb);
        rcu_read_unlock();