Fix MAC security header processing and validation. (#936)

This commit is contained in:
Jonathan Hui
2016-11-07 21:46:44 -08:00
committed by GitHub
parent 252bd7dd45
commit 4b1bc7dc70
+3 -5
View File
@@ -204,9 +204,10 @@ ThreadError Frame::ValidatePsdu(void)
// Security Header
if (fcf & Frame::kFcfSecurityEnabled)
{
VerifyOrExit(offset <= GetPsduLength(),);
uint8_t secControl = GetPsdu()[offset];
offset += kSecurityControlSize + kFrameCounterSize;
switch (secControl & kKeyIdModeMask)
{
case kKeyIdMode0:
@@ -974,10 +975,7 @@ uint8_t *Frame::GetPayload(void)
{
securityControl = *cur;
if (securityControl & kSecLevelMask)
{
cur += kSecurityControlSize + kFrameCounterSize;
}
cur += kSecurityControlSize + kFrameCounterSize;
switch (securityControl & kKeyIdModeMask)
{