AP MLD: Fix station lookup in hostapd_ml_get_assoc_sta()

If the station is not an MLO station do not attempt to find the
association station and return false in the ML specific disconnection
processing.

Signed-off-by: Ilan Peer <ilan.peer@intel.com>
This commit is contained in:
Ilan Peer 2023-12-25 19:42:59 +02:00 committed by Jouni Malinen
parent e9f75a3520
commit ea401c168e

View file

@ -5739,6 +5739,9 @@ hostapd_ml_get_assoc_sta(struct hostapd_data *hapd, struct sta_info *sta,
struct hostapd_data *other_hapd = NULL; struct hostapd_data *other_hapd = NULL;
struct sta_info *tmp_sta; struct sta_info *tmp_sta;
if (!sta->mld_info.mld_sta)
return NULL;
*assoc_hapd = hapd; *assoc_hapd = hapd;
/* The station is the one on which the association was performed */ /* The station is the one on which the association was performed */
@ -5787,6 +5790,8 @@ static bool hostapd_ml_handle_disconnect(struct hostapd_data *hapd,
* the information about all the other links. * the information about all the other links.
*/ */
assoc_sta = hostapd_ml_get_assoc_sta(hapd, sta, &assoc_hapd); assoc_sta = hostapd_ml_get_assoc_sta(hapd, sta, &assoc_hapd);
if (!assoc_sta)
return false;
for (link_id = 0; link_id < MAX_NUM_MLD_LINKS; link_id++) { for (link_id = 0; link_id < MAX_NUM_MLD_LINKS; link_id++) {
for (i = 0; i < assoc_hapd->iface->interfaces->count; i++) { for (i = 0; i < assoc_hapd->iface->interfaces->count; i++) {