3
0
mirror of https://git.kernel.org/pub/scm/network/wireless/iwd.git synced 2024-12-22 21:22:37 +01:00

netdev: fix association failure path

In netdev_associate_event the ignore_connect_event was getting set true,
but afterwards there were still potential failure paths. Now, once in
assoc_failed we explicitly set ignore_connect_event to false so the
the failure can be handled properly inside netdev_connect_event
This commit is contained in:
James Prestwood 2019-04-05 11:34:50 -07:00 committed by Denis Kenzior
parent 5359b54c37
commit 050db0b054

View File

@ -2423,9 +2423,6 @@ static void netdev_associate_event(struct l_genl_msg *msg,
if (status_code != 0)
goto assoc_failed;
/* Connection can be fully handled here, not in connect event */
netdev->ignore_connect_event = true;
if (netdev->sm) {
/*
* Start processing EAPoL frames now that the state machine
@ -2433,11 +2430,11 @@ static void netdev_associate_event(struct l_genl_msg *msg,
*/
if (!eapol_start(netdev->sm))
goto assoc_failed;
if (!netdev->in_ft)
return;
}
/* Connection can be fully handled here, not in connect event */
netdev->ignore_connect_event = true;
if (netdev->in_ft) {
bool is_rsn = netdev->handshake->supplicant_ie != NULL;
@ -2447,7 +2444,8 @@ static void netdev_associate_event(struct l_genl_msg *msg,
handshake_state_install_ptk(netdev->handshake);
return;
}
}
} else if (netdev->sm)
return;
netdev_connect_ok(netdev);