Check whether element parsing has failed
Check the ieee802_11_parse_elems() return code and do not proceed in various cases if parsing failed. Previously, these cases would have been allowed to continue by ignoring whatever might have followed in the IE buffer after the first detected parsing failure. This is not really an issue in practice, but it feels cleaner to explicitly stop when receiving an invalid set of IEs. Signed-off-by: Jouni Malinen <quic_jouni@quicinc.com>
This commit is contained in:
parent
a4c133ea73
commit
7a37a94eaa
3 changed files with 22 additions and 11 deletions
|
@ -59,9 +59,10 @@ void hostapd_notify_assoc_fils_finish(struct hostapd_data *hapd,
|
|||
if (!sta->fils_pending_assoc_req)
|
||||
return;
|
||||
|
||||
ieee802_11_parse_elems(sta->fils_pending_assoc_req,
|
||||
sta->fils_pending_assoc_req_len, &elems, 0);
|
||||
if (!elems.fils_session) {
|
||||
if (ieee802_11_parse_elems(sta->fils_pending_assoc_req,
|
||||
sta->fils_pending_assoc_req_len, &elems,
|
||||
0) == ParseFailed ||
|
||||
!elems.fils_session) {
|
||||
wpa_printf(MSG_DEBUG, "%s failed to find FILS Session element",
|
||||
__func__);
|
||||
return;
|
||||
|
@ -176,7 +177,12 @@ int hostapd_notif_assoc(struct hostapd_data *hapd, const u8 *addr,
|
|||
hostapd_logger(hapd, addr, HOSTAPD_MODULE_IEEE80211,
|
||||
HOSTAPD_LEVEL_INFO, "associated");
|
||||
|
||||
ieee802_11_parse_elems(req_ies, req_ies_len, &elems, 0);
|
||||
if (ieee802_11_parse_elems(req_ies, req_ies_len, &elems, 0) ==
|
||||
ParseFailed) {
|
||||
wpa_printf(MSG_DEBUG, "%s: Could not parse elements", __func__);
|
||||
return -1;
|
||||
}
|
||||
|
||||
if (elems.wps_ie) {
|
||||
ie = elems.wps_ie - 2;
|
||||
ielen = elems.wps_ie_len + 2;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue