wifi: use struct_group to copy addresses
We sometimes copy all the addresses from the 802.11 header for the AAD, which may cause complaints from fortify checks. Use struct_group() to avoid the compiler warnings/errors. Change-Id: Ic3ea389105e7813b22095b295079eecdabde5045 Signed-off-by: Johannes Berg <johannes.berg@intel.com>
This commit is contained in:
parent
8c0427842a
commit
2aec909912
|
@ -310,9 +310,11 @@ static inline u16 ieee80211_sn_sub(u16 sn1, u16 sn2)
|
|||
struct ieee80211_hdr {
|
||||
__le16 frame_control;
|
||||
__le16 duration_id;
|
||||
u8 addr1[ETH_ALEN];
|
||||
u8 addr2[ETH_ALEN];
|
||||
u8 addr3[ETH_ALEN];
|
||||
struct_group(addrs,
|
||||
u8 addr1[ETH_ALEN];
|
||||
u8 addr2[ETH_ALEN];
|
||||
u8 addr3[ETH_ALEN];
|
||||
);
|
||||
__le16 seq_ctrl;
|
||||
u8 addr4[ETH_ALEN];
|
||||
} __packed __aligned(2);
|
||||
|
|
|
@ -351,7 +351,7 @@ static u8 ccmp_gcmp_aad(struct sk_buff *skb, u8 *aad)
|
|||
* FC | A1 | A2 | A3 | SC | [A4] | [QC] */
|
||||
put_unaligned_be16(len_a, &aad[0]);
|
||||
put_unaligned(mask_fc, (__le16 *)&aad[2]);
|
||||
memcpy(&aad[4], &hdr->addr1, 3 * ETH_ALEN);
|
||||
memcpy(&aad[4], &hdr->addrs, 3 * ETH_ALEN);
|
||||
|
||||
/* Mask Seq#, leave Frag# */
|
||||
aad[22] = *((u8 *) &hdr->seq_ctrl) & 0x0f;
|
||||
|
@ -792,7 +792,7 @@ static void bip_aad(struct sk_buff *skb, u8 *aad)
|
|||
IEEE80211_FCTL_MOREDATA);
|
||||
put_unaligned(mask_fc, (__le16 *) &aad[0]);
|
||||
/* A1 || A2 || A3 */
|
||||
memcpy(aad + 2, &hdr->addr1, 3 * ETH_ALEN);
|
||||
memcpy(aad + 2, &hdr->addrs, 3 * ETH_ALEN);
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -136,7 +136,7 @@ static int ccmp_init_iv_and_aad(const struct ieee80211_hdr *hdr,
|
|||
pos = (u8 *) hdr;
|
||||
aad[0] = pos[0] & 0x8f;
|
||||
aad[1] = pos[1] & 0xc7;
|
||||
memcpy(aad + 2, hdr->addr1, 3 * ETH_ALEN);
|
||||
memcpy(aad + 2, &hdr->addrs, 3 * ETH_ALEN);
|
||||
pos = (u8 *) & hdr->seq_ctrl;
|
||||
aad[20] = pos[0] & 0x0f;
|
||||
aad[21] = 0; /* all bits masked */
|
||||
|
|
Loading…
Reference in New Issue