FST: Remove WPA_ASSERT from wpas_fst_send_action_cb()
It was possible to hit this WPA_ASSERT when FST-MANAGER SESSION_REMOVE command is exececuted when in not-associated state. In CONFIG_EAPOL_TEST=y builds, this would result in the wpa_supplicant process being terminated. Convert this WPA_ASSERT to a check that does not terminate the process, but only rejects the command if wpa_s->bssid does not match the da argument. Signed-off-by: Jouni Malinen <j@w1.fi>
This commit is contained in:
parent
968dce9b13
commit
0da355235e
1 changed files with 7 additions and 3 deletions
|
@ -4162,10 +4162,14 @@ static int wpas_fst_send_action_cb(void *ctx, const u8 *da, struct wpabuf *data)
|
||||||
{
|
{
|
||||||
struct wpa_supplicant *wpa_s = ctx;
|
struct wpa_supplicant *wpa_s = ctx;
|
||||||
|
|
||||||
WPA_ASSERT(os_memcmp(wpa_s->bssid, da, ETH_ALEN) == 0);
|
if (os_memcmp(wpa_s->bssid, da, ETH_ALEN) != 0) {
|
||||||
|
wpa_printf(MSG_INFO, "FST:%s:bssid=" MACSTR " != da=" MACSTR,
|
||||||
|
__func__, MAC2STR(wpa_s->bssid), MAC2STR(da));
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
return wpa_drv_send_action(wpa_s, wpa_s->assoc_freq, 0, wpa_s->bssid,
|
return wpa_drv_send_action(wpa_s, wpa_s->assoc_freq, 0, wpa_s->bssid,
|
||||||
wpa_s->own_addr, wpa_s->bssid,
|
wpa_s->own_addr, wpa_s->bssid,
|
||||||
wpabuf_head(data), wpabuf_len(data),
|
wpabuf_head(data), wpabuf_len(data),
|
||||||
0);
|
0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue