]> git.ipfire.org Git - thirdparty/hostap.git/commitdiff
EAP: Call deinit_for_reauth() for Phase 2 EAP methods
authorJouni Malinen <jouni@qca.qualcomm.com>
Fri, 10 Feb 2017 16:55:26 +0000 (18:55 +0200)
committerJouni Malinen <j@w1.fi>
Fri, 10 Feb 2017 17:48:12 +0000 (19:48 +0200)
EAP-TTLS/PEAP/FAST were previously doing this for init_for_reauth(), but
not for deinit_for_reauth(). Add the deinit_for_reauth() call as well to
cover cases like EAP-AKA cleaup of AT_CHECKCODE data.

Signed-off-by: Jouni Malinen <jouni@qca.qualcomm.com>
src/eap_peer/eap_fast.c
src/eap_peer/eap_peap.c
src/eap_peer/eap_ttls.c

index 6f2b2a2572cd5cb4d510ae1821e6b224f29065d8..e4b0c104184f15b49d4b3347efd465f6bcf7f161 100644 (file)
@@ -1678,6 +1678,10 @@ static Boolean eap_fast_has_reauth_data(struct eap_sm *sm, void *priv)
 static void eap_fast_deinit_for_reauth(struct eap_sm *sm, void *priv)
 {
        struct eap_fast_data *data = priv;
+
+       if (data->phase2_priv && data->phase2_method &&
+           data->phase2_method->deinit_for_reauth)
+               data->phase2_method->deinit_for_reauth(sm, data->phase2_priv);
        os_free(data->key_block_p);
        data->key_block_p = NULL;
        wpabuf_free(data->pending_phase2_req);
index 2d79f1c3b1a0f1b683152879218d37bbf52480b3..2ff60762501a487ecba54b9efe1df5d22f2b4b85 100644 (file)
@@ -1164,6 +1164,10 @@ static Boolean eap_peap_has_reauth_data(struct eap_sm *sm, void *priv)
 static void eap_peap_deinit_for_reauth(struct eap_sm *sm, void *priv)
 {
        struct eap_peap_data *data = priv;
+
+       if (data->phase2_priv && data->phase2_method &&
+           data->phase2_method->deinit_for_reauth)
+               data->phase2_method->deinit_for_reauth(sm, data->phase2_priv);
        wpabuf_free(data->pending_phase2_req);
        data->pending_phase2_req = NULL;
        wpabuf_free(data->pending_resp);
index ea4946ab5ae76b9cd3080a7b0b05e194e9ee243e..3354b2d3aedc1bfbc12d56b02d16efadcc22e430 100644 (file)
@@ -1650,6 +1650,10 @@ static Boolean eap_ttls_has_reauth_data(struct eap_sm *sm, void *priv)
 static void eap_ttls_deinit_for_reauth(struct eap_sm *sm, void *priv)
 {
        struct eap_ttls_data *data = priv;
+
+       if (data->phase2_priv && data->phase2_method &&
+           data->phase2_method->deinit_for_reauth)
+               data->phase2_method->deinit_for_reauth(sm, data->phase2_priv);
        wpabuf_free(data->pending_phase2_req);
        data->pending_phase2_req = NULL;
        wpabuf_free(data->pending_resp);