Page MenuHomeFreeBSD

D57799.id180496.diff
No OneTemporary

D57799.id180496.diff

diff --git a/sys/net80211/ieee80211_crypto.c b/sys/net80211/ieee80211_crypto.c
--- a/sys/net80211/ieee80211_crypto.c
+++ b/sys/net80211/ieee80211_crypto.c
@@ -1073,7 +1073,8 @@
/*
* AAD for PV0 MPDUs:
*
- * FC with bits 4..6 and 11..13 masked to zero; 14 is always one
+ * FC + data frame - mask bits 4..6
+ * FC 11..13 masked to zero; 14 is always one
* A1 | A2 | A3
* SC with bits 4..15 (seq#) masked to zero
* A4 (if present)
@@ -1081,7 +1082,11 @@
*/
aad[0] = 0; /* AAD length >> 8 */
/* NB: aad[1] set below */
- aad[2] = wh->i_fc[0] & 0x8f; /* see above for bitfields */
+ /* Only mask bits 4,5,6 if its a data frame */
+ aad[2] = wh->i_fc[0];
+ if (IEEE80211_IS_DATA(wh))
+ aad[2] &= 0x8f; /* see above for bitfields */
+
aad[3] = wh->i_fc[1] & 0xc7; /* see above for bitfields */
/* mask aad[3] b7 if frame is data frame w/ QoS control field */
if (IEEE80211_IS_QOS_ANY(wh))

File Metadata

Mime Type
text/plain
Expires
Tue, Sep 1, 9:14 AM (16 h, 13 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
34303957
Default Alt Text
D57799.id180496.diff (918 B)

Event Timeline