Commit e1e6ebf4 authored by Johannes Berg's avatar Johannes Berg
Browse files

wifi: mac80211: fix non-transmitted BSSID profile search



When the non-transmitted BSSID profile is found, immediately return
from the search to not return the wrong profile_len when the profile
is found in a multiple BSSID element that isn't the last one in the
frame.

Fixes: 5023b14c ("mac80211: support profile split between elements")
Reported-by: default avatarMichael-CY Lee <michael-cy.lee@mediatek.com>
Link: https://patch.msgid.link/20250630154501.f26cd45a0ecd.I28e0525d06e8a99e555707301bca29265cf20dc8@changeid


Signed-off-by: default avatarJohannes Berg <johannes.berg@intel.com>
parent 8af596e8
Loading
Loading
Loading
Loading
+2 −4
Original line number Diff line number Diff line
@@ -758,7 +758,6 @@ static size_t ieee802_11_find_bssid_profile(const u8 *start, size_t len,
{
	const struct element *elem, *sub;
	size_t profile_len = 0;
	bool found = false;

	if (!bss || !bss->transmitted_bss)
		return profile_len;
@@ -809,15 +808,14 @@ static size_t ieee802_11_find_bssid_profile(const u8 *start, size_t len,
					       index[2],
					       new_bssid);
			if (ether_addr_equal(new_bssid, bss->bssid)) {
				found = true;
				elems->bssid_index_len = index[1];
				elems->bssid_index = (void *)&index[2];
				break;
				return profile_len;
			}
		}
	}

	return found ? profile_len : 0;
	return 0;
}

static void