mac80211: fix IBSS presp allocation size
authorJohannes Berg <johannes.berg@intel.com>
Thu, 27 Apr 2017 11:19:04 +0000 (13:19 +0200)
committerJohannes Berg <johannes.berg@intel.com>
Mon, 8 May 2017 09:25:04 +0000 (11:25 +0200)
When VHT IBSS support was added, the size of the extra elements
wasn't considered in ieee80211_ibss_build_presp(), which makes
it possible that it would overrun the allocated buffer. Fix it
by allocating the necessary space.

Fixes: abcff6ef01f9 ("mac80211: add VHT support for IBSS")
Reported-by: Shaul Triebitz <shaul.triebitz@intel.com>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
net/mac80211/ibss.c

index 6db09fa18269f3a12032345afa5af0fa336a8c50..364d4e13764942db0b41eee7a9561b3c00e946ae 100644 (file)
@@ -66,6 +66,8 @@ ieee80211_ibss_build_presp(struct ieee80211_sub_if_data *sdata,
                    2 + (IEEE80211_MAX_SUPP_RATES - 8) +
                    2 + sizeof(struct ieee80211_ht_cap) +
                    2 + sizeof(struct ieee80211_ht_operation) +
+                   2 + sizeof(struct ieee80211_vht_cap) +
+                   2 + sizeof(struct ieee80211_vht_operation) +
                    ifibss->ie_len;
        presp = kzalloc(sizeof(*presp) + frame_len, GFP_KERNEL);
        if (!presp)