|
@@ -1,5 +1,5 @@
|
|
|
/*
|
|
|
- * Copyright (c) 2012-2017 The Linux Foundation. All rights reserved.
|
|
|
+ * Copyright (c) 2012-2018 The Linux Foundation. All rights reserved.
|
|
|
*
|
|
|
* Previously licensed under the ISC license by Qualcomm Atheros, Inc.
|
|
|
*
|
|
@@ -33,7 +33,7 @@
|
|
|
*
|
|
|
*
|
|
|
* This file was automatically generated by 'framesc'
|
|
|
- * Tue Dec 19 17:58:19 2017 from the following file(s):
|
|
|
+ * Wed Dec 27 16:34:21 2017 from the following file(s):
|
|
|
*
|
|
|
* dot11f.frms
|
|
|
*
|
|
@@ -4912,9 +4912,16 @@ uint32_t dot11f_unpack_ie_rsn(tpAniSirGlobal pCtx,
|
|
|
pDst->present = 0;
|
|
|
return status | DOT11F_BAD_FIXED_VALUE;
|
|
|
}
|
|
|
- DOT11F_MEMCPY(pCtx, pDst->gp_cipher_suite, pBuf, 4);
|
|
|
- pBuf += 4;
|
|
|
- ielen -= (uint8_t)4;
|
|
|
+ if (!ielen) {
|
|
|
+ pDst->pwise_cipher_suite_count = 0U;
|
|
|
+ pDst->akm_suite_count = 0U;
|
|
|
+ pDst->pmkid_count = 0U;
|
|
|
+ return 0U;
|
|
|
+ } else {
|
|
|
+ DOT11F_MEMCPY(pCtx, pDst->gp_cipher_suite, pBuf, 4);
|
|
|
+ pBuf += 4;
|
|
|
+ ielen -= (uint8_t)4;
|
|
|
+ }
|
|
|
if (!ielen) {
|
|
|
pDst->pwise_cipher_suite_count = 0U;
|
|
|
pDst->akm_suite_count = 0U;
|
|
@@ -7623,7 +7630,7 @@ static const tIEDefn IES_Beacon[] = {
|
|
|
present), 0, "ExtSuppRates", 0, 3, 14, SigIeExtSuppRates, {0, 0, 0, 0, 0},
|
|
|
0, DOT11F_EID_EXTSUPPRATES, 0, 0, },
|
|
|
{ offsetof(tDot11fBeacon, RSN), offsetof(tDot11fIERSN, present), 0, "RSN",
|
|
|
- 0, 8, 132, SigIeRSN, {0, 0, 0, 0, 0}, 0, DOT11F_EID_RSN, 0, 0, },
|
|
|
+ 0, 4, 132, SigIeRSN, {0, 0, 0, 0, 0}, 0, DOT11F_EID_RSN, 0, 0, },
|
|
|
{ offsetof(tDot11fBeacon, QBSSLoad), offsetof(tDot11fIEQBSSLoad, present),
|
|
|
0, "QBSSLoad", 0, 7, 7, SigIeQBSSLoad, {0, 0, 0, 0, 0},
|
|
|
0, DOT11F_EID_QBSSLOAD, 0, 0, },
|
|
@@ -8070,7 +8077,7 @@ static const tIEDefn IES_BeaconIEs[] = {
|
|
|
0, 3, 14, SigIeExtSuppRates, {0, 0, 0, 0, 0},
|
|
|
0, DOT11F_EID_EXTSUPPRATES, 0, 0, },
|
|
|
{ offsetof(tDot11fBeaconIEs, RSN), offsetof(tDot11fIERSN, present), 0,
|
|
|
- "RSN", 0, 8, 132, SigIeRSN, {0, 0, 0, 0, 0}, 0, DOT11F_EID_RSN, 0, 0, },
|
|
|
+ "RSN", 0, 4, 132, SigIeRSN, {0, 0, 0, 0, 0}, 0, DOT11F_EID_RSN, 0, 0, },
|
|
|
{ offsetof(tDot11fBeaconIEs, QBSSLoad), offsetof(tDot11fIEQBSSLoad,
|
|
|
present), 0, "QBSSLoad", 0, 7, 7, SigIeQBSSLoad, {0, 0, 0, 0, 0},
|
|
|
0, DOT11F_EID_QBSSLOAD, 0, 0, },
|
|
@@ -9421,7 +9428,7 @@ static const tIEDefn IES_TDLSDisRsp[] = {
|
|
|
"SuppOperatingClasses", 0, 3, 34, SigIeSuppOperatingClasses,
|
|
|
{0, 0, 0, 0, 0}, 0, DOT11F_EID_SUPPOPERATINGCLASSES, 0, 0, },
|
|
|
{ offsetof(tDot11fTDLSDisRsp, RSN), offsetof(tDot11fIERSN, present), 0,
|
|
|
- "RSN", 0, 8, 132, SigIeRSN, {0, 0, 0, 0, 0}, 0, DOT11F_EID_RSN, 0, 0, },
|
|
|
+ "RSN", 0, 4, 132, SigIeRSN, {0, 0, 0, 0, 0}, 0, DOT11F_EID_RSN, 0, 0, },
|
|
|
{ offsetof(tDot11fTDLSDisRsp, ExtCap), offsetof(tDot11fIEExtCap, present),
|
|
|
0, "ExtCap", 0, 3, 17, SigIeExtCap, {0, 0, 0, 0, 0},
|
|
|
0, DOT11F_EID_EXTCAP, 0, 0, },
|
|
@@ -9552,7 +9559,7 @@ static const tFFDefn FFS_TDLSSetupCnf[] = {
|
|
|
|
|
|
static const tIEDefn IES_TDLSSetupCnf[] = {
|
|
|
{ offsetof(tDot11fTDLSSetupCnf, RSN), offsetof(tDot11fIERSN, present), 0,
|
|
|
- "RSN", 0, 8, 132, SigIeRSN, {0, 0, 0, 0, 0}, 0, DOT11F_EID_RSN, 0, 0, },
|
|
|
+ "RSN", 0, 4, 132, SigIeRSN, {0, 0, 0, 0, 0}, 0, DOT11F_EID_RSN, 0, 0, },
|
|
|
{ offsetof(tDot11fTDLSSetupCnf, EDCAParamSet),
|
|
|
offsetof(tDot11fIEEDCAParamSet, present), 0, "EDCAParamSet",
|
|
|
0, 20, 20, SigIeEDCAParamSet, {0, 0, 0, 0, 0},
|
|
@@ -9627,7 +9634,7 @@ static const tIEDefn IES_TDLSSetupReq[] = {
|
|
|
0, 4, 98, SigIeSuppChannels, {0, 0, 0, 0, 0},
|
|
|
0, DOT11F_EID_SUPPCHANNELS, 0, 0, },
|
|
|
{ offsetof(tDot11fTDLSSetupReq, RSN), offsetof(tDot11fIERSN, present), 0,
|
|
|
- "RSN", 0, 8, 132, SigIeRSN, {0, 0, 0, 0, 0}, 0, DOT11F_EID_RSN, 0, 0, },
|
|
|
+ "RSN", 0, 4, 132, SigIeRSN, {0, 0, 0, 0, 0}, 0, DOT11F_EID_RSN, 0, 0, },
|
|
|
{ offsetof(tDot11fTDLSSetupReq, ExtCap), offsetof(tDot11fIEExtCap,
|
|
|
present), 0, "ExtCap", 0, 3, 17, SigIeExtCap, {0, 0, 0, 0, 0},
|
|
|
0, DOT11F_EID_EXTCAP, 0, 0, },
|
|
@@ -9716,7 +9723,7 @@ static const tIEDefn IES_TDLSSetupRsp[] = {
|
|
|
0, 4, 98, SigIeSuppChannels, {0, 0, 0, 0, 0},
|
|
|
0, DOT11F_EID_SUPPCHANNELS, 0, 0, },
|
|
|
{ offsetof(tDot11fTDLSSetupRsp, RSN), offsetof(tDot11fIERSN, present), 0,
|
|
|
- "RSN", 0, 8, 132, SigIeRSN, {0, 0, 0, 0, 0}, 0, DOT11F_EID_RSN, 0, 0, },
|
|
|
+ "RSN", 0, 4, 132, SigIeRSN, {0, 0, 0, 0, 0}, 0, DOT11F_EID_RSN, 0, 0, },
|
|
|
{ offsetof(tDot11fTDLSSetupRsp, ExtCap), offsetof(tDot11fIEExtCap,
|
|
|
present), 0, "ExtCap", 0, 3, 17, SigIeExtCap, {0, 0, 0, 0, 0},
|
|
|
0, DOT11F_EID_EXTCAP, 0, 0, },
|
|
@@ -13130,7 +13137,11 @@ uint32_t dot11f_get_packed_iersn(tpAniSirGlobal pCtx,
|
|
|
(void)pCtx;
|
|
|
while (pIe->present) {
|
|
|
*pnNeeded += 2;
|
|
|
- *pnNeeded += 4;
|
|
|
+ if (pIe->gp_cipher_suite) {
|
|
|
+ *pnNeeded += 4;
|
|
|
+ } else {
|
|
|
+ break;
|
|
|
+ }
|
|
|
if (pIe->pwise_cipher_suite_count) {
|
|
|
*pnNeeded += 2;
|
|
|
} else {
|
|
@@ -21457,9 +21468,13 @@ uint32_t dot11f_pack_ie_rsn(tpAniSirGlobal pCtx,
|
|
|
frameshtons(pCtx, pBuf, pSrc->version, 0);
|
|
|
*pnConsumed += 2;
|
|
|
pBuf += 2;
|
|
|
- DOT11F_MEMCPY(pCtx, pBuf, pSrc->gp_cipher_suite, 4);
|
|
|
- *pnConsumed += 4;
|
|
|
- pBuf += 4;
|
|
|
+ if (pSrc->gp_cipher_suite) {
|
|
|
+ DOT11F_MEMCPY(pCtx, pBuf, pSrc->gp_cipher_suite, 4);
|
|
|
+ *pnConsumed += 4;
|
|
|
+ pBuf += 4;
|
|
|
+ } else {
|
|
|
+ break;
|
|
|
+ }
|
|
|
if (pSrc->pwise_cipher_suite_count) {
|
|
|
frameshtons(pCtx, pBuf, pSrc->pwise_cipher_suite_count, 0);
|
|
|
*pnConsumed += 2;
|