]> git.ipfire.org Git - thirdparty/hostap.git/commitdiff
FT: Do not omit RSNXE from FT initial mobility domain association
authorJouni Malinen <quic_jouni@quicinc.com>
Fri, 27 Sep 2024 19:59:22 +0000 (22:59 +0300)
committerJouni Malinen <j@w1.fi>
Fri, 27 Sep 2024 19:59:22 +0000 (22:59 +0300)
The special case for having to omit the RSNXE from Reassociation Request
frames applies only for FT protocol. This was incorrectly applied to all
cases using FT, i.e., both the initial mobility domain association and
FT protocol. This should not have changed behavior for the initial
mobility domain association regardless of whether Association Request
frame or Reassociation Request frame is used.

Fix the conditions for omitting the RSNXE to apply only when actually
going through FT protocol.

Fixes: 6140cca8191e ("FT: Omit RSNXE from FT protocol Reassociation Request when needed")
Signed-off-by: Jouni Malinen <quic_jouni@quicinc.com>
wpa_supplicant/sme.c

index 818ddca83b68c4f9f83fd4811d071c0b498f27b5..b7faf53e39187200ec8fdcefc5de2e1effbfe63a 100644 (file)
@@ -813,7 +813,6 @@ static void sme_send_authentication(struct wpa_supplicant *wpa_s,
                wpa_dbg(wpa_s, MSG_DEBUG, "SME: FT mobility domain %02x%02x",
                        md[0], md[1]);
 
-               omit_rsnxe = !wpa_bss_get_rsnxe(wpa_s, bss, ssid, false);
                if (wpa_s->sme.assoc_req_ie_len + 5 <
                    sizeof(wpa_s->sme.assoc_req_ie)) {
                        struct rsn_mdie *mdie;
@@ -833,6 +832,8 @@ static void sme_send_authentication(struct wpa_supplicant *wpa_s,
                    wpa_sm_has_ft_keys(wpa_s->wpa, md)) {
                        wpa_dbg(wpa_s, MSG_DEBUG, "SME: Trying to use FT "
                                "over-the-air");
+                       omit_rsnxe = !wpa_bss_get_rsnxe(wpa_s, bss, ssid,
+                                                       false);
                        params.auth_alg = WPA_AUTH_ALG_FT;
                        params.ie = wpa_s->sme.ft_ies;
                        params.ie_len = wpa_s->sme.ft_ies_len;