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
1 changed files with 5 additions and 7 deletions

View File

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