mac80211: use exact-size allocation for authentication frame
authorFred Zhou <fred.zy@gmail.com>
Tue, 24 Sep 2013 02:33:01 +0000 (10:33 +0800)
committerJohannes Berg <johannes.berg@intel.com>
Tue, 1 Oct 2013 10:20:38 +0000 (12:20 +0200)
The authentication frame has a fixied size of 30 bytes
(including header, algo num, trans seq num, and status)
followed by a variable challenge text.
Allocate using exact size, instead of over-allocation
by sizeof(ieee80211_mgmt).

Signed-off-by: Fred Zhou <fred.zy@gmail.com>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
net/mac80211/util.c

index 3c8283b9b45ae0e8499569b4c2e4f4d88649176c..1fb31f94bf89fc0f48c2feb25c14694852b0ee2d 100644 (file)
@@ -1081,8 +1081,8 @@ void ieee80211_send_auth(struct ieee80211_sub_if_data *sdata,
        struct ieee80211_mgmt *mgmt;
        int err;
 
-       skb = dev_alloc_skb(local->hw.extra_tx_headroom +
-                           sizeof(*mgmt) + 6 + extra_len);
+       /* 24 + 6 = header + auth_algo + auth_transaction + status_code */
+       skb = dev_alloc_skb(local->hw.extra_tx_headroom + 24 + 6 + extra_len);
        if (!skb)
                return;