From: Johannes Berg Date: Tue, 26 Dec 2023 08:29:46 +0000 (+0200) Subject: nl80211: Fix AP MLD MAC address on auth retry X-Git-Tag: hostap_2_11~516 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=f40a5883357b24b155c24777f9e1dcad61d3a3a3;p=thirdparty%2Fhostap.git nl80211: Fix AP MLD MAC address on auth retry The AP MLD MAC address is meant to be preserved here, but since it's reset to zeroes before attempting to authenticate in nl80211_mark_disconnected(), we can't just point to the AP MLD MAC address in drv->auth_ap_mld_addr. Fix it by using a copy. Signed-off-by: Johannes Berg --- diff --git a/src/drivers/driver_nl80211.c b/src/drivers/driver_nl80211.c index 92b041eb8..a5dea1db3 100644 --- a/src/drivers/driver_nl80211.c +++ b/src/drivers/driver_nl80211.c @@ -4090,6 +4090,7 @@ int wpa_driver_nl80211_authenticate_retry(struct wpa_driver_nl80211_data *drv) { struct wpa_driver_auth_params params; struct i802_bss *bss = drv->first_bss; + u8 ap_mld_addr[ETH_ALEN]; int i; wpa_printf(MSG_DEBUG, "nl80211: Try to authenticate again"); @@ -4115,8 +4116,10 @@ int wpa_driver_nl80211_authenticate_retry(struct wpa_driver_nl80211_data *drv) params.auth_data_len = drv->auth_data_len; params.mld = drv->auth_mld; params.mld_link_id = drv->auth_mld_link_id; - if (drv->auth_mld) - params.ap_mld_addr = drv->auth_ap_mld_addr; + if (drv->auth_mld) { + os_memcpy(ap_mld_addr, drv->auth_ap_mld_addr, ETH_ALEN); + params.ap_mld_addr = ap_mld_addr; + } for (i = 0; i < 4; i++) { if (drv->auth_wep_key_len[i]) {