diff --git a/src/netdev.c b/src/netdev.c index b389c920..f0e6d828 100644 --- a/src/netdev.c +++ b/src/netdev.c @@ -2577,10 +2577,12 @@ static void netdev_sae_complete(uint16_t status, void *user_data) struct iovec iov[3]; int iov_elems = 0; + sae_sm_free(netdev->sae_sm); + netdev->sae_sm = NULL; + if (status != 0) { l_error("SAE exchange failed on %u result %u", netdev->index, status); - netdev->sae_sm = NULL; goto auth_failed; } diff --git a/src/sae.c b/src/sae.c index 446c7c62..49089adf 100644 --- a/src/sae.c +++ b/src/sae.c @@ -157,8 +157,6 @@ static bool sae_cn(const uint8_t *kck, uint16_t send_confirm, static void sae_authentication_failed(struct sae_sm *sm, uint16_t reason) { sm->complete(reason, sm->user_data); - - sae_sm_free(sm); } static void sae_reject_authentication(struct sae_sm *sm, uint16_t reason)