Revert "Cumulative patch from commit a9491695b30a7f750dc45cb563d813b03f1d4b8d"
This reverts commit bbcc4391bed89e8cd0dd235760cd2983f65721cf.
Bug: 34869019
Test: Load image and start soft AP
Change-Id: I85f39c134c1321d6a78f9f25a34f71ad7b1173fb
diff --git a/src/ap/ieee802_11.c b/src/ap/ieee802_11.c
index cceeee0..09850ef 100644
--- a/src/ap/ieee802_11.c
+++ b/src/ap/ieee802_11.c
@@ -1166,7 +1166,6 @@
u8 *ie_buf = NULL;
const u8 *pmk = NULL;
size_t pmk_len = 0;
- u8 pmk_buf[PMK_LEN_MAX];
if (resp != WLAN_STATUS_SUCCESS)
goto fail;
@@ -1235,16 +1234,8 @@
wpabuf_put_u8(data, WLAN_EID_EXT_FILS_WRAPPED_DATA);
wpabuf_put_buf(data, erp_resp);
- if (fils_rmsk_to_pmk(wpa_auth_sta_key_mgmt(sta->wpa_sm),
- msk, msk_len, sta->fils_snonce, fils_nonce,
- NULL, 0, pmk_buf, &pmk_len)) {
- wpa_printf(MSG_DEBUG, "FILS: Failed to derive PMK");
- resp = WLAN_STATUS_UNSPECIFIED_FAILURE;
- wpabuf_free(data);
- data = NULL;
- goto fail;
- }
- pmk = pmk_buf;
+ pmk = msk;
+ pmk_len = msk_len > PMK_LEN ? PMK_LEN : msk_len;
} else if (pmksa) {
pmk = pmksa->pmk;
pmk_len = pmksa->pmk_len;
@@ -2407,85 +2398,6 @@
}
-#ifdef CONFIG_FILS
-
-static void fils_process_hlp_req(struct hostapd_data *hapd,
- struct sta_info *sta,
- const u8 *pos, size_t len)
-{
- const u8 *pkt, *end;
-
- wpa_printf(MSG_DEBUG, "FILS: HLP request from " MACSTR " (dst=" MACSTR
- " src=" MACSTR " len=%u)",
- MAC2STR(sta->addr), MAC2STR(pos), MAC2STR(pos + ETH_ALEN),
- (unsigned int) len);
- if (os_memcmp(sta->addr, pos + ETH_ALEN, ETH_ALEN) != 0) {
- wpa_printf(MSG_DEBUG,
- "FILS: Ignore HLP request with unexpected source address"
- MACSTR, MAC2STR(pos + ETH_ALEN));
- return;
- }
-
- end = pos + len;
- pkt = pos + 2 * ETH_ALEN;
- if (end - pkt >= 6 &&
- os_memcmp(pkt, "\xaa\xaa\x03\x00\x00\x00", 6) == 0)
- pkt += 6; /* Remove SNAP/LLC header */
- wpa_hexdump(MSG_MSGDUMP, "FILS: HLP request packet", pkt, end - pkt);
-}
-
-
-static void fils_process_hlp(struct hostapd_data *hapd, struct sta_info *sta,
- const u8 *pos, int left)
-{
- const u8 *end = pos + left;
- u8 *tmp, *tmp_pos;
-
- /* Check if there are any FILS HLP Container elements */
- while (end - pos >= 2) {
- if (2 + pos[1] > end - pos)
- return;
- if (pos[0] == WLAN_EID_EXTENSION &&
- pos[1] >= 1 + 2 * ETH_ALEN &&
- pos[2] == WLAN_EID_EXT_FILS_HLP_CONTAINER)
- break;
- pos += 2 + pos[1];
- }
- if (end - pos < 2)
- return; /* No FILS HLP Container elements */
-
- tmp = os_malloc(end - pos);
- if (!tmp)
- return;
-
- while (end - pos >= 2) {
- if (2 + pos[1] > end - pos ||
- pos[0] != WLAN_EID_EXTENSION ||
- pos[1] < 1 + 2 * ETH_ALEN ||
- pos[2] != WLAN_EID_EXT_FILS_HLP_CONTAINER)
- break;
- tmp_pos = tmp;
- os_memcpy(tmp_pos, pos + 3, pos[1] - 1);
- tmp_pos += pos[1] - 1;
- pos += 2 + pos[1];
-
- /* Add possible fragments */
- while (end - pos >= 2 && pos[0] == WLAN_EID_FRAGMENT &&
- 2 + pos[1] <= end - pos) {
- os_memcpy(tmp_pos, pos + 2, pos[1]);
- tmp_pos += pos[1];
- pos += 2 + pos[1];
- }
-
- fils_process_hlp_req(hapd, sta, tmp, tmp_pos - tmp);
- }
-
- os_free(tmp);
-}
-
-#endif /* CONFIG_FILS */
-
-
static void handle_assoc(struct hostapd_data *hapd,
const struct ieee80211_mgmt *mgmt, size_t len,
int reassoc)
@@ -2606,8 +2518,8 @@
if ((fc & WLAN_FC_RETRY) &&
sta->last_seq_ctrl != WLAN_INVALID_MGMT_SEQ &&
sta->last_seq_ctrl == seq_ctrl &&
- sta->last_subtype == (reassoc ? WLAN_FC_STYPE_REASSOC_REQ :
- WLAN_FC_STYPE_ASSOC_REQ)) {
+ sta->last_subtype == reassoc ? WLAN_FC_STYPE_REASSOC_REQ :
+ WLAN_FC_STYPE_ASSOC_REQ) {
hostapd_logger(hapd, sta->addr, HOSTAPD_MODULE_IEEE80211,
HOSTAPD_LEVEL_DEBUG,
"Drop repeated association frame seq_ctrl=0x%x",
@@ -2757,13 +2669,6 @@
sta->pending_wds_enable = 0;
-#ifdef CONFIG_FILS
- if (sta->auth_alg == WLAN_AUTH_FILS_SK ||
- sta->auth_alg == WLAN_AUTH_FILS_SK_PFS ||
- sta->auth_alg == WLAN_AUTH_FILS_PK)
- fils_process_hlp(hapd, sta, pos, left);
-#endif /* CONFIG_FILS */
-
fail:
/*
* In case of a successful response, add the station to the driver.
@@ -3504,7 +3409,6 @@
size_t len, int ok)
{
struct sta_info *sta;
- const struct rrm_measurement_report_element *report;
if (is_multicast_ether_addr(mgmt->da))
return;
@@ -3515,15 +3419,10 @@
return;
}
- if (len < 24 + 5 + sizeof(*report))
+ if (len < 24 + 2)
return;
- report = (const struct rrm_measurement_report_element *)
- &mgmt->u.action.u.rrm.variable[2];
if (mgmt->u.action.category == WLAN_ACTION_RADIO_MEASUREMENT &&
- mgmt->u.action.u.rrm.action == WLAN_RRM_RADIO_MEASUREMENT_REQUEST &&
- report->eid == WLAN_EID_MEASURE_REQUEST &&
- report->len >= 3 &&
- report->type == MEASURE_TYPE_BEACON)
+ mgmt->u.action.u.rrm.action == WLAN_RRM_RADIO_MEASUREMENT_REQUEST)
hostapd_rrm_beacon_req_tx_status(hapd, mgmt, len, ok);
}