mac80211: correct aid location in peering frames
authorBob Copeland <me@bobcopeland.com>
Tue, 14 Jul 2015 12:31:55 +0000 (08:31 -0400)
committerJohannes Berg <johannes.berg@intel.com>
Fri, 17 Jul 2015 12:38:10 +0000 (14:38 +0200)
According to 802.11-2012 8.5.16.3.2 AID comes directly after the
capability bytes in mesh peering confirm frames.  The existing
code, however, was adding a 2 byte offset to this location,
resulting in garbage data going out over the air.  Remove the
offset to fix it.

Signed-off-by: Bob Copeland <me@bobcopeland.com>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
net/mac80211/mesh_plink.c

index 5438d13e2f007d1bca01ac97bb0f54867bef15ce..f17127e754c9410d7cd3df3a8c11f25e775c0470 100644 (file)
@@ -306,7 +306,7 @@ static int mesh_plink_frame_tx(struct ieee80211_sub_if_data *sdata,
                if (action == WLAN_SP_MESH_PEERING_CONFIRM) {
                        /* AID */
                        pos = skb_put(skb, 2);
-                       put_unaligned_le16(plid, pos + 2);
+                       put_unaligned_le16(plid, pos);
                }
                if (ieee80211_add_srates_ie(sdata, skb, true, band) ||
                    ieee80211_add_ext_srates_ie(sdata, skb, true, band) ||