From ba1579f3bf7c19e5065ed75385d05f7603d77f35 Mon Sep 17 00:00:00 2001 From: Veerendranath Jakkam Date: Mon, 4 Sep 2023 01:06:41 +0530 Subject: [PATCH] Clear BIGTK values from wpa_supplicant state machine when not needed wpa_supplicant does not configure BIGTK(s) to the driver when the STA reconnects to the same AP after disconnect due to not clearing the last configured BIGTK values during disconnect. To avoid such issues clear the BIGTK values while clearing PTK and other group keys. Fixes: 2d4c78aef718 ("Configure received BIGTK on station/supplicant side") Fixes: f15cc834cb77 ("MLD STA: Processing of EAPOL-Key msg 3/4 frame when using MLO") Signed-off-by: Veerendranath Jakkam --- src/rsn_supp/wpa.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/rsn_supp/wpa.c b/src/rsn_supp/wpa.c index 7294a15bc..2867d60af 100644 --- a/src/rsn_supp/wpa.c +++ b/src/rsn_supp/wpa.c @@ -4073,6 +4073,8 @@ static void wpa_sm_clear_ptk(struct wpa_sm *sm) os_memset(&sm->gtk_wnm_sleep, 0, sizeof(sm->gtk_wnm_sleep)); os_memset(&sm->igtk, 0, sizeof(sm->igtk)); os_memset(&sm->igtk_wnm_sleep, 0, sizeof(sm->igtk_wnm_sleep)); + os_memset(&sm->bigtk, 0, sizeof(sm->bigtk)); + os_memset(&sm->bigtk_wnm_sleep, 0, sizeof(sm->bigtk_wnm_sleep)); sm->tk_set = false; for (i = 0; i < MAX_NUM_MLD_LINKS; i++) { os_memset(&sm->mlo.links[i].gtk, 0, @@ -4083,6 +4085,10 @@ static void wpa_sm_clear_ptk(struct wpa_sm *sm) sizeof(sm->mlo.links[i].igtk)); os_memset(&sm->mlo.links[i].igtk_wnm_sleep, 0, sizeof(sm->mlo.links[i].igtk_wnm_sleep)); + os_memset(&sm->mlo.links[i].bigtk, 0, + sizeof(sm->mlo.links[i].bigtk)); + os_memset(&sm->mlo.links[i].bigtk_wnm_sleep, 0, + sizeof(sm->mlo.links[i].bigtk_wnm_sleep)); } } -- 2.47.2