aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBadrish Adiga H R <badrish.adigahr@gmail.com>2017-02-18 13:14:15 (GMT)
committerJouni Malinen <j@w1.fi>2017-02-20 20:15:04 (GMT)
commit128f6a98b3d4d6ed103db759707309f451db9682 (patch)
tree428d0146a851f0876b99200c35dacff30abbb8c6
parent213eb18851da734f12846877509d7cf4d41ab90e (diff)
downloadhostap-128f6a98b3d4d6ed103db759707309f451db9682.zip
hostap-128f6a98b3d4d6ed103db759707309f451db9682.tar.gz
hostap-128f6a98b3d4d6ed103db759707309f451db9682.tar.bz2
mka: Fix the order of operations in secure channel deletion
The 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@gmail.com>
-rw-r--r--src/pae/ieee802_1x_kay.c6
1 files 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));