RSN: Do not start preauthentication timer without candidates

There is no need to schedule the postponed RSN preauthentication start
if there are no candidates. Avoid wasting eloop resources for this.

This is most useful for fuzz testing of the 4-way handshake
implementation to avoid getting stuck waiting for this unnecessary one
second time when using eloop to coordinate the Authenticator and
Supplicant state machines.

Signed-off-by: Jouni Malinen <j@w1.fi>
This commit is contained in:
Jouni Malinen 2019-02-10 13:41:10 +02:00
parent 85611e967e
commit 02a0a23939

View file

@ -715,7 +715,9 @@ static void wpa_supplicant_key_neg_complete(struct wpa_sm *sm,
* likelihood of the first preauth EAPOL-Start frame getting to * likelihood of the first preauth EAPOL-Start frame getting to
* the target AP. * the target AP.
*/ */
eloop_register_timeout(1, 0, wpa_sm_start_preauth, sm, NULL); if (!dl_list_empty(&sm->pmksa_candidates))
eloop_register_timeout(1, 0, wpa_sm_start_preauth,
sm, NULL);
} }
if (sm->cur_pmksa && sm->cur_pmksa->opportunistic) { if (sm->cur_pmksa && sm->cur_pmksa->opportunistic) {