Received: by 2002:a05:6a10:d5a5:0:0:0:0 with SMTP id gn37csp194379pxb; Thu, 30 Sep 2021 04:15:56 -0700 (PDT) X-Google-Smtp-Source: ABdhPJz4o3935j1R2Fu+hqEobrVVzqcMC0z+cm5IxTpjCbIqU/AI+GeYPLmt7Y969x2Z3GgW8zHU X-Received: by 2002:a50:d809:: with SMTP id o9mr6394109edj.149.1633000556494; Thu, 30 Sep 2021 04:15:56 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1633000556; cv=none; d=google.com; s=arc-20160816; b=Hyz45URMftf66cZBjYlcMOQnnxh/WkVrYADp+BZQuZ2f0ttUB0Ixj1lcOyesYFZqr0 z6rc89d94cksTh0SpAbalEYdS/wiSjkB7YvBeuXsMC0cL1jsiky1Bdb1cyOQpNegcqYX kwUOGPzprd2roqR0oHd2GhGlffhcDMNQnl4MwU4/B2c37LVhKuL5mnTQdc8qk6px/jmO 7T65S1JcVNzYByPQCoVpPIO8/u/ZCMuBw7yCl61TnW3Y5VbJgWZB7Avk78sd4PDLF7m6 IJZZ6hoWccnH8Uqwp+gxH5WdDrXmUCBp1Dy3CNwosb9AKb288tEIP9/cbtSvpxMDvoXE qC3Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :message-id:date:subject:cc:to:from:dkim-signature; bh=yTdM2B7TrxybEUeNZPWeEbY9ri1D7F4Q36RMTPpcOow=; b=Q3Eqzld4ajN+17ynRBOhN3+0YG8OtVumzY6J+C0GmE9IPoEC3uGo6XwGay0tRrXIpB 81ryVq8OGTPFUIb+sy8FA5yKKVywTWeBWFaNjviCcK9X3VqZIWtIAoqWMyarAEPawoW4 ujSemJ8nNbYDiz47u1xsSPh2A0PgZHD7k25+QpiBuV4537IJKdW5QlWfM6WwCyfQWaaV 1tnQdjdf0otnDDylw6VnVN0G0/4K/IHufIudLhd3+XsG5bAzW93kiZG4KOgovi/0UA7o vataiB4HzL/PUShTDMMnp0oxAafJuylOOi8alHH6w/F0yb6+Y7WReQ3mgHGwQDh90zz4 PQlg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@sipsolutions.net header.s=mail header.b=Ackf8BWY; spf=pass (google.com: domain of linux-wireless-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-wireless-owner@vger.kernel.org; dmarc=pass (p=NONE sp=REJECT dis=NONE) header.from=sipsolutions.net Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id i18si2813766edu.277.2021.09.30.04.15.34; Thu, 30 Sep 2021 04:15:56 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-wireless-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@sipsolutions.net header.s=mail header.b=Ackf8BWY; spf=pass (google.com: domain of linux-wireless-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-wireless-owner@vger.kernel.org; dmarc=pass (p=NONE sp=REJECT dis=NONE) header.from=sipsolutions.net Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1350385AbhI3LN3 (ORCPT + 78 others); Thu, 30 Sep 2021 07:13:29 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:45248 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1350353AbhI3LNS (ORCPT ); Thu, 30 Sep 2021 07:13:18 -0400 Received: from sipsolutions.net (s3.sipsolutions.net [IPv6:2a01:4f8:191:4433::2]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 95A03C06176A for ; Thu, 30 Sep 2021 04:11:35 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=sipsolutions.net; s=mail; h=Content-Transfer-Encoding:MIME-Version: Message-Id:Date:Subject:Cc:To:From:Content-Type:Sender:Reply-To:Content-ID: Content-Description:Resent-Date:Resent-From:Resent-To:Resent-Cc: Resent-Message-ID:In-Reply-To:References; bh=yTdM2B7TrxybEUeNZPWeEbY9ri1D7F4Q36RMTPpcOow=; t=1633000295; x=1634209895; b=Ackf8BWYv5NLlkGoAxscaLeEUvToXAxPtmiFdePiZvjkTBW4VTGL4b2sUfS+QflBIZQsd2hoeP4 X1fYOfzI64uHG3BSxgNfFrUKA9hiWZ4pxUcDl7t1/PmChLCSvrhxsx80S86tjBtyo0z/v1fMgIIob iZGcXKnGwkaXtyKmoShFa71PuaKo2lMWJy1PPQszvhFgTtsDNtc2uSUsd6EaHXsHkqkFEnpN88MNO 70hkus+jCysJTfmmEmPIrnYYQdFN9TXzoR3F1sg3OoCNlngzuA4FspVVG4ytF/DxD9zUgEZFfevav VvQnpzLtsaYBZETxPeqBe8WJHUvxpLp975cA==; Received: by sipsolutions.net with esmtpsa (TLS1.3:ECDHE_X25519__RSA_PSS_RSAE_SHA256__AES_256_GCM:256) (Exim 4.95-RC2) (envelope-from ) id 1mVtyP-00Dlti-W4; Thu, 30 Sep 2021 13:11:34 +0200 From: Johannes Berg To: linux-wireless@vger.kernel.org Cc: Johannes Berg Subject: [PATCH 1/5] mac80211: fils: use cfg80211_find_ext_elem() Date: Thu, 30 Sep 2021 13:11:28 +0200 Message-Id: <20210930131130.17ecf37f0605.I853c2f9c2117a713deca9b8deb3552796d98ffac@changeid> X-Mailer: git-send-email 2.31.1 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-wireless@vger.kernel.org From: Johannes Berg Replace the use of cfg80211_find_ext_ie() with the more structured cfg80211_find_ext_elem(). Signed-off-by: Johannes Berg --- net/mac80211/fils_aead.c | 22 ++++++++++++---------- 1 file changed, 12 insertions(+), 10 deletions(-) diff --git a/net/mac80211/fils_aead.c b/net/mac80211/fils_aead.c index a13ae148937e..e1d4cfd99128 100644 --- a/net/mac80211/fils_aead.c +++ b/net/mac80211/fils_aead.c @@ -219,7 +219,8 @@ int fils_encrypt_assoc_req(struct sk_buff *skb, { struct ieee80211_mgmt *mgmt = (void *)skb->data; u8 *capab, *ies, *encr; - const u8 *addr[5 + 1], *session; + const u8 *addr[5 + 1]; + const struct element *session; size_t len[5 + 1]; size_t crypt_len; @@ -231,12 +232,12 @@ int fils_encrypt_assoc_req(struct sk_buff *skb, ies = mgmt->u.assoc_req.variable; } - session = cfg80211_find_ext_ie(WLAN_EID_EXT_FILS_SESSION, - ies, skb->data + skb->len - ies); - if (!session || session[1] != 1 + 8) + session = cfg80211_find_ext_elem(WLAN_EID_EXT_FILS_SESSION, + ies, skb->data + skb->len - ies); + if (!session || session->datalen != 1 + 8) return -EINVAL; /* encrypt after FILS Session element */ - encr = (u8 *)session + 2 + 1 + 8; + encr = (u8 *)session->data + 1 + 8; /* AES-SIV AAD vectors */ @@ -270,7 +271,8 @@ int fils_decrypt_assoc_resp(struct ieee80211_sub_if_data *sdata, { struct ieee80211_mgmt *mgmt = (void *)frame; u8 *capab, *ies, *encr; - const u8 *addr[5 + 1], *session; + const u8 *addr[5 + 1]; + const struct element *session; size_t len[5 + 1]; int res; size_t crypt_len; @@ -280,16 +282,16 @@ int fils_decrypt_assoc_resp(struct ieee80211_sub_if_data *sdata, capab = (u8 *)&mgmt->u.assoc_resp.capab_info; ies = mgmt->u.assoc_resp.variable; - session = cfg80211_find_ext_ie(WLAN_EID_EXT_FILS_SESSION, - ies, frame + *frame_len - ies); - if (!session || session[1] != 1 + 8) { + session = cfg80211_find_ext_elem(WLAN_EID_EXT_FILS_SESSION, + ies, frame + *frame_len - ies); + if (!session || session->datalen != 1 + 8) { mlme_dbg(sdata, "No (valid) FILS Session element in (Re)Association Response frame from %pM", mgmt->sa); return -EINVAL; } /* decrypt after FILS Session element */ - encr = (u8 *)session + 2 + 1 + 8; + encr = (u8 *)session->data + 1 + 8; /* AES-SIV AAD vectors */ -- 2.31.1