[mac-frame] read FCF after validating PSDU length (#2141)

This commit is contained in:
Jonathan Hui
2017-08-26 23:56:10 -07:00
committed by GitHub
parent 3d2bb0373e
commit 4db72783c8
+4 -3
View File
@@ -794,8 +794,7 @@ otError Frame::SetPayloadLength(uint8_t aLength)
uint8_t Frame::FindPayloadIndex(void) const
{
uint8_t index = 0;
uint16_t fcf = GetFrameControlField();
uint8_t securityControl;
uint16_t fcf;
// Frame Control
index += kFcfSize;
@@ -804,6 +803,8 @@ uint8_t Frame::FindPayloadIndex(void) const
VerifyOrExit((index + kFcsSize) <= GetPsduLength(), index = kInvalidIndex);
fcf = GetFrameControlField();
// Destination PAN + Address
switch (fcf & kFcfDstAddrMask)
{
@@ -855,7 +856,7 @@ uint8_t Frame::FindPayloadIndex(void) const
// Security Control + Frame Counter + Key Identifier
if ((fcf & kFcfSecurityEnabled) != 0)
{
securityControl = *(GetPsdu() + index);
uint8_t securityControl = *(GetPsdu() + index);
index += kSecurityControlSize + kFrameCounterSize;