]> git.ipfire.org Git - thirdparty/hostap.git/commitdiff
MLD: Ensure link BSSIDs remain on stack for ignore
authorBenjamin Berg <benjamin.berg@intel.com>
Fri, 14 Jun 2024 08:13:42 +0000 (10:13 +0200)
committerJouni Malinen <j@w1.fi>
Thu, 11 Jul 2024 15:53:59 +0000 (18:53 +0300)
When ignoring a link BSSID the multi-link information was parsed out
into a struct ml_sta_link_info on the stack. However, this stack
variable went out of scope before it was used by passing the link_bssids
pointer array to another function.

Fixes: 5af986c75af4 ("MLD: Also mark links as failed after association failure")
Signed-off-by: Benjamin Berg <benjamin.berg@intel.com>
wpa_supplicant/events.c

index 4ab9f0b88600c75ce978df38db938e233f3a9159..952816db23b4f2e6661ebdd6d7b461f265cc39d7 100644 (file)
@@ -5636,6 +5636,7 @@ static void wpas_event_assoc_reject(struct wpa_supplicant *wpa_s,
 {
        const u8 *bssid = data->assoc_reject.bssid;
        struct ieee802_11_elems elems;
+       struct ml_sta_link_info ml_info[MAX_NUM_MLD_LINKS];
        const u8 *link_bssids[MAX_NUM_MLD_LINKS];
 #ifdef CONFIG_MBO
        struct wpa_bss *reject_bss;
@@ -5768,7 +5769,6 @@ static void wpas_event_assoc_reject(struct wpa_supplicant *wpa_s,
        if (ieee802_11_parse_elems(data->assoc_reject.resp_ies,
                                   data->assoc_reject.resp_ies_len,
                                   &elems, 1) != ParseFailed) {
-               struct ml_sta_link_info ml_info[MAX_NUM_MLD_LINKS];
                unsigned int n_links, i, idx;
 
                idx = 0;