From: Jouni Malinen Date: Sat, 2 Apr 2016 13:49:50 +0000 (+0300) Subject: AP: Do not use struct ieee80211_mgmt::u.probe_req X-Git-Tag: hostap_2_6~639 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=e1b99620c929174e7b69a8b25f17ba31e1f1f31f;p=thirdparty%2Fhostap.git AP: Do not use struct ieee80211_mgmt::u.probe_req This struct in the union is empty, but the design of using a zero-length u8 array here is not fully compatible with C++ and can result in undesired compiler warnings. Since there are no non-IE fields in the Probe Request frames, get the location of the variable length IEs simply by using the pointer to the frame header and the known header length. Signed-off-by: Jouni Malinen --- diff --git a/src/ap/beacon.c b/src/ap/beacon.c index 0720e1419..19bff7bb8 100644 --- a/src/ap/beacon.c +++ b/src/ap/beacon.c @@ -685,12 +685,12 @@ void handle_probe_req(struct hostapd_data *hapd, u16 csa_offs[2]; size_t csa_offs_len; - ie = mgmt->u.probe_req.variable; - if (len < IEEE80211_HDRLEN + sizeof(mgmt->u.probe_req)) + if (len < IEEE80211_HDRLEN) return; + ie = ((const u8 *) mgmt) + IEEE80211_HDRLEN; if (hapd->iconf->track_sta_max_num) sta_track_add(hapd->iface, mgmt->sa); - ie_len = len - (IEEE80211_HDRLEN + sizeof(mgmt->u.probe_req)); + ie_len = len - IEEE80211_HDRLEN; for (i = 0; hapd->probereq_cb && i < hapd->num_probereq_cb; i++) if (hapd->probereq_cb[i].cb(hapd->probereq_cb[i].ctx,