Browse Source

FILS: Pass only IE area to handle_auth_fils()

This function does not need the frame header, so pass in only the IE
area to make it easier to share this for driver-based AP SME handling.

Signed-off-by: Jouni Malinen <jouni@qca.qualcomm.com>
Jeffin Mammen 8 years ago
parent
commit
b8a3453aca
1 changed files with 7 additions and 8 deletions
  1. 7 8
      src/ap/ieee802_11.c

+ 7 - 8
src/ap/ieee802_11.c

@@ -1014,12 +1014,11 @@ static void handle_auth_fils_finish(struct hostapd_data *hapd,
 				    const u8 *msk, size_t msk_len);
 
 static void handle_auth_fils(struct hostapd_data *hapd, struct sta_info *sta,
-			     const struct ieee80211_mgmt *mgmt, size_t len,
-			     u16 auth_alg, u16 auth_transaction,
-			     u16 status_code)
+			     const u8 *pos, size_t len, u16 auth_alg,
+			     u16 auth_transaction, u16 status_code)
 {
 	u16 resp = WLAN_STATUS_SUCCESS;
-	const u8 *pos, *end;
+	const u8 *end;
 	struct ieee802_11_elems elems;
 	int res;
 	struct wpa_ie_data rsn;
@@ -1028,8 +1027,7 @@ static void handle_auth_fils(struct hostapd_data *hapd, struct sta_info *sta,
 	if (auth_transaction != 1 || status_code != WLAN_STATUS_SUCCESS)
 		return;
 
-	pos = mgmt->u.auth.variable;
-	end = ((const u8 *) mgmt) + len;
+	end = pos + len;
 
 	wpa_hexdump(MSG_DEBUG, "FILS: Authentication frame fields",
 		    pos, end - pos);
@@ -1855,8 +1853,9 @@ static void handle_auth(struct hostapd_data *hapd,
 #ifdef CONFIG_FILS
 	case WLAN_AUTH_FILS_SK:
 	case WLAN_AUTH_FILS_SK_PFS:
-		handle_auth_fils(hapd, sta, mgmt, len, auth_alg,
-				 auth_transaction, status_code);
+		handle_auth_fils(hapd, sta, mgmt->u.auth.variable,
+				 len - IEEE80211_HDRLEN - sizeof(mgmt->u.auth),
+				 auth_alg, auth_transaction, status_code);
 		return;
 #endif /* CONFIG_FILS */
 	}