}
if (wpa_s->sme.ft_used &&
- os_memcmp(md, wpa_s->sme.mobility_domain, 2) == 0) {
+ os_memcmp(md, wpa_s->sme.mobility_domain, 2) == 0 &&
+ wpa_sm_has_ptk(wpa_s->wpa)) {
wpa_printf(MSG_DEBUG, "SME: Trying to use FT "
"over-the-air");
params.auth_alg = WPA_AUTH_ALG_FT;
wpa_supplicant_set_state(wpa_s, WPA_ASSOCIATING);
- if (ieee802_11_parse_elems(params.wpa_ie, params.wpa_ie_len, &elems, 0)
+ if (params.wpa_ie == NULL ||
+ ieee802_11_parse_elems(params.wpa_ie, params.wpa_ie_len, &elems, 0)
< 0) {
wpa_printf(MSG_DEBUG, "SME: Could not parse own IEs?!");
os_memset(&elems, 0, sizeof(elems));