TDLS: Do not bail when failing to process IEs in Discovery Request

Some APs (Cisco) may tack on a weird IE to the end of a TDLS Discovery
Request packet. This needn't fail the response, since the required IEs
are verified separately.

Signed-off-by: Arik Nemtsov <arikx.nemtsov@intel.com>
This commit is contained in:
Arik Nemtsov 2014-06-10 21:19:10 +03:00 committed by Jouni Malinen
parent 7e0f4f470a
commit bed7eb6808

View file

@ -1378,10 +1378,17 @@ wpa_tdls_process_discovery_request(struct wpa_sm *sm, const u8 *addr,
dialog_token = buf[sizeof(struct wpa_tdls_frame)]; dialog_token = buf[sizeof(struct wpa_tdls_frame)];
/*
* Some APs will tack on a weird IE to the end of a TDLS
* discovery request packet. This needn't fail the response,
* since the required IE are verified separately.
*/
if (wpa_supplicant_parse_ies(buf + sizeof(struct wpa_tdls_frame) + 1, if (wpa_supplicant_parse_ies(buf + sizeof(struct wpa_tdls_frame) + 1,
len - (sizeof(struct wpa_tdls_frame) + 1), len - (sizeof(struct wpa_tdls_frame) + 1),
&kde) < 0) &kde) < 0) {
return -1; wpa_printf(MSG_DEBUG,
"TDLS: Failed to parse IEs in Discovery Request - ignore as an interop workaround");
}
if (!kde.lnkid) { if (!kde.lnkid) {
wpa_printf(MSG_DEBUG, "TDLS: Link ID not found in Discovery " wpa_printf(MSG_DEBUG, "TDLS: Link ID not found in Discovery "