Description of fix: Correct order of deleting a secure channel is to purge all the secure associations in the channel before actually deleting the secure channel. Signed-off-by: Badrish Adiga H R <badrish.adigahr@xxxxxxxxx> --- src/pae/ieee802_1x_kay.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/pae/ieee802_1x_kay.c b/src/pae/ieee802_1x_kay.c index e420fc1..3f9e53d 100644 --- a/src/pae/ieee802_1x_kay.c +++ b/src/pae/ieee802_1x_kay.c @@ -2361,9 +2361,9 @@ static void ieee802_1x_participant_timer(void *eloop_ctx, void *timeout_ctx) &participant->rxsc_list, struct receive_sc, list) { if (sci_equal(&rxsc->sci, &peer->sci)) { - secy_delete_receive_sc(kay, rxsc); ieee802_1x_kay_deinit_receive_sc( participant, rxsc); + secy_delete_receive_sc(kay, rxsc); } } dl_list_del(&peer->list); @@ -3432,11 +3432,11 @@ ieee802_1x_kay_delete_mka(struct ieee802_1x_kay *kay, struct mka_key_name *ckn) while (!dl_list_empty(&participant->rxsc_list)) { rxsc = dl_list_entry(participant->rxsc_list.next, struct receive_sc, list); - secy_delete_receive_sc(kay, rxsc); ieee802_1x_kay_deinit_receive_sc(participant, rxsc); + secy_delete_receive_sc(kay, rxsc); } - secy_delete_transmit_sc(kay, participant->txsc); ieee802_1x_kay_deinit_transmit_sc(participant, participant->txsc); + secy_delete_transmit_sc(kay, participant->txsc); os_memset(&participant->cak, 0, sizeof(participant->cak)); os_memset(&participant->kek, 0, sizeof(participant->kek)); -- 2.6.1.133.gf5b6079 _______________________________________________ Hostap mailing list Hostap@xxxxxxxxxxxxxxxxxxx http://lists.infradead.org/mailman/listinfo/hostap