mirror of
https://github.com/espressif/openthread.git
synced 2026-07-25 05:24:08 +00:00
Add missing error information. (#1740)
* add missing care for error * keep scope check in InsertMplOption
This commit is contained in:
@@ -314,7 +314,7 @@ ThreadError Dataset::ProcessCommit(otInstance *aInstance, int argc, char *argv[]
|
||||
{
|
||||
ThreadError error = kThreadError_None;
|
||||
|
||||
VerifyOrExit(argc > 0);
|
||||
VerifyOrExit(argc > 0, error = kThreadError_InvalidArgs);
|
||||
|
||||
if (strcmp(argv[0], "active") == 0)
|
||||
{
|
||||
|
||||
@@ -156,14 +156,15 @@ ThreadError Icmp::HandleMessage(Message &aMessage, MessageInfo &aMessageInfo)
|
||||
IcmpHeader icmp6Header;
|
||||
uint16_t checksum;
|
||||
|
||||
VerifyOrExit(aMessage.Read(aMessage.GetOffset(), sizeof(icmp6Header), &icmp6Header) == sizeof(icmp6Header));
|
||||
VerifyOrExit(aMessage.Read(aMessage.GetOffset(), sizeof(icmp6Header), &icmp6Header) == sizeof(icmp6Header),
|
||||
error = kThreadError_Parse);
|
||||
payloadLength = aMessage.GetLength() - aMessage.GetOffset();
|
||||
|
||||
// verify checksum
|
||||
checksum = Ip6::ComputePseudoheaderChecksum(aMessageInfo.GetPeerAddr(), aMessageInfo.GetSockAddr(),
|
||||
payloadLength, kProtoIcmp6);
|
||||
checksum = aMessage.UpdateChecksum(checksum, aMessage.GetOffset(), payloadLength);
|
||||
VerifyOrExit(checksum == 0xffff);
|
||||
VerifyOrExit(checksum == 0xffff, error = kThreadError_Parse);
|
||||
|
||||
if (mIsEchoEnabled && (icmp6Header.GetType() == kIcmp6TypeEchoRequest))
|
||||
{
|
||||
|
||||
@@ -251,7 +251,7 @@ ThreadError Ip6::RemoveMplOption(Message &aMessage)
|
||||
|
||||
aMessage.Read(offset, sizeof(hbh), &hbh);
|
||||
endOffset = offset + (hbh.GetLength() + 1) * 8;
|
||||
VerifyOrExit(aMessage.GetLength() >= endOffset);
|
||||
VerifyOrExit(aMessage.GetLength() >= endOffset, error = kThreadError_Parse);
|
||||
|
||||
offset += sizeof(hbh);
|
||||
|
||||
@@ -298,7 +298,7 @@ ThreadError Ip6::RemoveMplOption(Message &aMessage)
|
||||
}
|
||||
|
||||
// verify that IPv6 Options header is properly formed
|
||||
VerifyOrExit(offset == endOffset);
|
||||
VerifyOrExit(offset == endOffset, error = kThreadError_Parse);
|
||||
|
||||
if (remove)
|
||||
{
|
||||
|
||||
@@ -220,9 +220,10 @@ ThreadError Udp::HandleMessage(Message &aMessage, MessageInfo &aMessageInfo)
|
||||
checksum = Ip6::ComputePseudoheaderChecksum(aMessageInfo.GetPeerAddr(), aMessageInfo.GetSockAddr(),
|
||||
payloadLength, kProtoUdp);
|
||||
checksum = aMessage.UpdateChecksum(checksum, aMessage.GetOffset(), payloadLength);
|
||||
VerifyOrExit(checksum == 0xffff);
|
||||
VerifyOrExit(checksum == 0xffff, error = kThreadError_Drop);
|
||||
|
||||
VerifyOrExit(aMessage.Read(aMessage.GetOffset(), sizeof(udpHeader), &udpHeader) == sizeof(udpHeader));
|
||||
VerifyOrExit(aMessage.Read(aMessage.GetOffset(), sizeof(udpHeader), &udpHeader) == sizeof(udpHeader),
|
||||
error = kThreadError_Parse);
|
||||
aMessage.MoveOffset(sizeof(udpHeader));
|
||||
aMessageInfo.mPeerPort = udpHeader.GetSourcePort();
|
||||
aMessageInfo.mSockPort = udpHeader.GetDestinationPort();
|
||||
|
||||
@@ -89,7 +89,7 @@ ThreadError AnnounceBeginServer::SendAnnounce(uint32_t aChannelMask, uint8_t aCo
|
||||
while ((mChannelMask & (1 << mChannel)) == 0)
|
||||
{
|
||||
mChannel++;
|
||||
VerifyOrExit(mChannel <= kPhyMaxChannel);
|
||||
VerifyOrExit(mChannel <= kPhyMaxChannel, error = kThreadError_InvalidArgs);
|
||||
}
|
||||
|
||||
mTimer.Start(mPeriod);
|
||||
|
||||
+13
-13
@@ -412,7 +412,7 @@ ThreadError Mle::Discover(uint32_t aScanChannels, uint16_t aPanId, bool aJoiner,
|
||||
mDiscoverContext = aContext;
|
||||
mNetif.GetMeshForwarder().SetDiscoverParameters(aScanChannels);
|
||||
|
||||
VerifyOrExit((message = NewMleMessage()) != NULL);
|
||||
VerifyOrExit((message = NewMleMessage()) != NULL, error = kThreadError_NoBufs);
|
||||
message->SetSubType(Message::kSubTypeMleDiscoverRequest);
|
||||
message->SetPanId(aPanId);
|
||||
SuccessOrExit(error = AppendHeader(*message, Header::kCommandDiscoveryRequest));
|
||||
@@ -1510,7 +1510,7 @@ ThreadError Mle::SendParentRequest(void)
|
||||
break;
|
||||
}
|
||||
|
||||
VerifyOrExit((message = NewMleMessage()) != NULL);
|
||||
VerifyOrExit((message = NewMleMessage()) != NULL, error = kThreadError_NoBufs);
|
||||
SuccessOrExit(error = AppendHeader(*message, Header::kCommandParentRequest));
|
||||
SuccessOrExit(error = AppendMode(*message, mDeviceMode));
|
||||
SuccessOrExit(error = AppendChallenge(*message, mParentRequest.mChallenge, sizeof(mParentRequest.mChallenge)));
|
||||
@@ -1557,7 +1557,7 @@ ThreadError Mle::SendChildIdRequest(void)
|
||||
Message *message;
|
||||
Ip6::Address destination;
|
||||
|
||||
VerifyOrExit((message = NewMleMessage()) != NULL);
|
||||
VerifyOrExit((message = NewMleMessage()) != NULL, error = kThreadError_NoBufs);
|
||||
SuccessOrExit(error = AppendHeader(*message, Header::kCommandChildIdRequest));
|
||||
SuccessOrExit(error = AppendResponse(*message, mChildIdRequest.mChallenge, mChildIdRequest.mChallengeLength));
|
||||
SuccessOrExit(error = AppendLinkFrameCounter(*message));
|
||||
@@ -1603,7 +1603,7 @@ ThreadError Mle::SendDataRequest(const Ip6::Address &aDestination, const uint8_t
|
||||
ThreadError error = kThreadError_None;
|
||||
Message *message;
|
||||
|
||||
VerifyOrExit((message = NewMleMessage()) != NULL);
|
||||
VerifyOrExit((message = NewMleMessage()) != NULL, error = kThreadError_NoBufs);
|
||||
SuccessOrExit(error = AppendHeader(*message, Header::kCommandDataRequest));
|
||||
SuccessOrExit(error = AppendTlvRequest(*message, aTlvs, aTlvsLength));
|
||||
SuccessOrExit(error = AppendActiveTimestamp(*message, false));
|
||||
@@ -1670,7 +1670,7 @@ ThreadError Mle::SendChildUpdateRequest(void)
|
||||
mParentRequestTimer.Start(kUnicastRetransmissionDelay);
|
||||
mChildUpdateAttempts++;
|
||||
|
||||
VerifyOrExit((message = NewMleMessage()) != NULL);
|
||||
VerifyOrExit((message = NewMleMessage()) != NULL, error = kThreadError_NoBufs);
|
||||
message->SetSubType(Message::kSubTypeMleChildUpdateRequest);
|
||||
SuccessOrExit(error = AppendHeader(*message, Header::kCommandChildUpdateRequest));
|
||||
SuccessOrExit(error = AppendMode(*message, mDeviceMode));
|
||||
@@ -1738,7 +1738,7 @@ ThreadError Mle::SendChildUpdateResponse(const uint8_t *aTlvs, uint8_t aNumTlvs,
|
||||
Ip6::Address destination;
|
||||
Message *message;
|
||||
|
||||
VerifyOrExit((message = NewMleMessage()) != NULL);
|
||||
VerifyOrExit((message = NewMleMessage()) != NULL, error = kThreadError_NoBufs);
|
||||
SuccessOrExit(error = AppendHeader(*message, Header::kCommandChildUpdateResponse));
|
||||
SuccessOrExit(error = AppendSourceAddress(*message));
|
||||
SuccessOrExit(error = AppendLeaderData(*message));
|
||||
@@ -1799,7 +1799,7 @@ ThreadError Mle::SendAnnounce(uint8_t aChannel, bool aOrphanAnnounce)
|
||||
Ip6::Address destination;
|
||||
Message *message;
|
||||
|
||||
VerifyOrExit((message = NewMleMessage()) != NULL);
|
||||
VerifyOrExit((message = NewMleMessage()) != NULL, error = kThreadError_NoBufs);
|
||||
message->SetLinkSecurityEnabled(true);
|
||||
message->SetSubType(Message::kSubTypeMleAnnounce);
|
||||
message->SetChannel(aChannel);
|
||||
@@ -3002,14 +3002,14 @@ ThreadError Mle::HandleAnnounce(const Message &aMessage, const Ip6::MessageInfo
|
||||
|
||||
otLogInfoMle(GetInstance(), "Received announce");
|
||||
|
||||
SuccessOrExit(Tlv::GetTlv(aMessage, Tlv::kChannel, sizeof(channel), channel));
|
||||
VerifyOrExit(channel.IsValid());
|
||||
SuccessOrExit(error = Tlv::GetTlv(aMessage, Tlv::kChannel, sizeof(channel), channel));
|
||||
VerifyOrExit(channel.IsValid(), error = kThreadError_Parse);
|
||||
|
||||
SuccessOrExit(Tlv::GetTlv(aMessage, Tlv::kActiveTimestamp, sizeof(timestamp), timestamp));
|
||||
VerifyOrExit(timestamp.IsValid());
|
||||
SuccessOrExit(error = Tlv::GetTlv(aMessage, Tlv::kActiveTimestamp, sizeof(timestamp), timestamp));
|
||||
VerifyOrExit(timestamp.IsValid(), error = kThreadError_Parse);
|
||||
|
||||
SuccessOrExit(Tlv::GetTlv(aMessage, Tlv::kPanId, sizeof(panid), panid));
|
||||
VerifyOrExit(panid.IsValid());
|
||||
SuccessOrExit(error = Tlv::GetTlv(aMessage, Tlv::kPanId, sizeof(panid), panid));
|
||||
VerifyOrExit(panid.IsValid(), error = kThreadError_Parse);
|
||||
|
||||
localTimestamp = mNetif.GetActiveDataset().GetNetwork().GetTimestamp();
|
||||
|
||||
|
||||
@@ -352,6 +352,7 @@ ThreadError MleRouter::HandleDetachStart(void)
|
||||
|
||||
ThreadError MleRouter::HandleChildStart(otMleAttachFilter aFilter)
|
||||
{
|
||||
ThreadError error = kThreadError_None;
|
||||
mRouterIdSequenceLastUpdated = Timer::GetNow();
|
||||
mRouterSelectionJitterTimeout = (otPlatRandomGet() % mRouterSelectionJitter) + 1;
|
||||
|
||||
@@ -365,7 +366,7 @@ ThreadError MleRouter::HandleChildStart(otMleAttachFilter aFilter)
|
||||
|
||||
mNetif.SubscribeAllRoutersMulticast();
|
||||
|
||||
VerifyOrExit(IsRouterIdValid(mPreviousRouterId));
|
||||
VerifyOrExit(IsRouterIdValid(mPreviousRouterId), error = kThreadError_InvalidState);
|
||||
|
||||
switch (aFilter)
|
||||
{
|
||||
@@ -412,7 +413,7 @@ exit:
|
||||
SetRouterId(kInvalidRouterId);
|
||||
}
|
||||
|
||||
return kThreadError_None;
|
||||
return error;
|
||||
}
|
||||
|
||||
ThreadError MleRouter::SetStateRouter(uint16_t aRloc16)
|
||||
@@ -539,7 +540,7 @@ ThreadError MleRouter::SendAdvertisement(void)
|
||||
Ip6::Address destination;
|
||||
Message *message;
|
||||
|
||||
VerifyOrExit((message = NewMleMessage()) != NULL);
|
||||
VerifyOrExit((message = NewMleMessage()) != NULL, error = kThreadError_NoBufs);
|
||||
SuccessOrExit(error = AppendHeader(*message, Header::kCommandAdvertisement));
|
||||
SuccessOrExit(error = AppendSourceAddress(*message));
|
||||
SuccessOrExit(error = AppendLeaderData(*message));
|
||||
@@ -587,7 +588,7 @@ ThreadError MleRouter::SendLinkRequest(Neighbor *aNeighbor)
|
||||
|
||||
memset(&destination, 0, sizeof(destination));
|
||||
|
||||
VerifyOrExit((message = NewMleMessage()) != NULL);
|
||||
VerifyOrExit((message = NewMleMessage()) != NULL, error = kThreadError_NoBufs);
|
||||
SuccessOrExit(error = AppendHeader(*message, Header::kCommandLinkRequest));
|
||||
SuccessOrExit(error = AppendVersion(*message));
|
||||
|
||||
@@ -666,9 +667,9 @@ ThreadError MleRouter::HandleLinkRequest(const Message &aMessage, const Ip6::Mes
|
||||
otLogInfoMle(GetInstance(), "Received link request");
|
||||
|
||||
VerifyOrExit(GetDeviceState() == kDeviceStateRouter ||
|
||||
GetDeviceState() == kDeviceStateLeader);
|
||||
GetDeviceState() == kDeviceStateLeader, error = kThreadError_InvalidState);
|
||||
|
||||
VerifyOrExit(mParentRequestState == kParentIdle);
|
||||
VerifyOrExit(mParentRequestState == kParentIdle, error = kThreadError_InvalidState);
|
||||
|
||||
macAddr.Set(aMessageInfo.GetPeerAddr());
|
||||
|
||||
@@ -684,7 +685,7 @@ ThreadError MleRouter::HandleLinkRequest(const Message &aMessage, const Ip6::Mes
|
||||
if (Tlv::GetTlv(aMessage, Tlv::kLeaderData, sizeof(leaderData), leaderData) == kThreadError_None)
|
||||
{
|
||||
VerifyOrExit(leaderData.IsValid(), error = kThreadError_Parse);
|
||||
VerifyOrExit(leaderData.GetPartitionId() == mLeaderData.GetPartitionId());
|
||||
VerifyOrExit(leaderData.GetPartitionId() == mLeaderData.GetPartitionId(), error = kThreadError_InvalidState);
|
||||
}
|
||||
|
||||
// Source Address
|
||||
@@ -767,7 +768,7 @@ ThreadError MleRouter::SendLinkAccept(const Ip6::MessageInfo &aMessageInfo, Neig
|
||||
command = (aNeighbor == NULL || aNeighbor->GetState() == Neighbor::kStateValid) ?
|
||||
Header::kCommandLinkAccept : Header::kCommandLinkAcceptAndRequest;
|
||||
|
||||
VerifyOrExit((message = NewMleMessage()) != NULL);
|
||||
VerifyOrExit((message = NewMleMessage()) != NULL, error = kThreadError_NoBufs);
|
||||
SuccessOrExit(error = AppendHeader(*message, command));
|
||||
SuccessOrExit(error = AppendVersion(*message));
|
||||
SuccessOrExit(error = AppendSourceAddress(*message));
|
||||
@@ -1909,7 +1910,7 @@ ThreadError MleRouter::SendParentResponse(Child *aChild, const ChallengeTlv &cha
|
||||
Message *message;
|
||||
uint16_t delay;
|
||||
|
||||
VerifyOrExit((message = NewMleMessage()) != NULL);
|
||||
VerifyOrExit((message = NewMleMessage()) != NULL, error = kThreadError_NoBufs);
|
||||
SuccessOrExit(error = AppendHeader(*message, Header::kCommandParentResponse));
|
||||
SuccessOrExit(error = AppendSourceAddress(*message));
|
||||
SuccessOrExit(error = AppendLeaderData(*message));
|
||||
@@ -2049,12 +2050,13 @@ ThreadError MleRouter::HandleChildIdRequest(const Message &aMessage, const Ip6::
|
||||
// Find Child
|
||||
macAddr.Set(aMessageInfo.GetPeerAddr());
|
||||
|
||||
VerifyOrExit((child = FindChild(macAddr)) != NULL);
|
||||
VerifyOrExit((child = FindChild(macAddr)) != NULL, error = kThreadError_Already);
|
||||
|
||||
// Response
|
||||
SuccessOrExit(error = Tlv::GetTlv(aMessage, Tlv::kResponse, sizeof(response), response));
|
||||
VerifyOrExit(response.IsValid() &&
|
||||
memcmp(response.GetResponse(), child->GetChallenge(), child->GetChallengeSize()) == 0);
|
||||
memcmp(response.GetResponse(), child->GetChallenge(), child->GetChallengeSize()) == 0,
|
||||
error = kThreadError_Security);
|
||||
|
||||
// Link-Layer Frame Counter
|
||||
SuccessOrExit(error = Tlv::GetTlv(aMessage, Tlv::kLinkFrameCounter, sizeof(linkFrameCounter),
|
||||
@@ -2337,7 +2339,8 @@ ThreadError MleRouter::HandleChildUpdateResponse(const Message &aMessage, const
|
||||
if (Tlv::GetTlv(aMessage, Tlv::kResponse, sizeof(response), response) == kThreadError_None)
|
||||
{
|
||||
VerifyOrExit(response.IsValid() &&
|
||||
memcmp(response.GetResponse(), child->GetChallenge(), child->GetChallengeSize()) == 0);
|
||||
memcmp(response.GetResponse(), child->GetChallenge(), child->GetChallengeSize()) == 0,
|
||||
error = kThreadError_Security);
|
||||
}
|
||||
|
||||
// Link-Layer Frame Counter
|
||||
@@ -2541,7 +2544,7 @@ ThreadError MleRouter::HandleDiscoveryRequest(const Message &aMessage, const Ip6
|
||||
otLogInfoMle(GetInstance(), "Received discovery request");
|
||||
|
||||
// only Routers and REEDs respond
|
||||
VerifyOrExit((mDeviceMode & ModeTlv::kModeFFD) != 0);
|
||||
VerifyOrExit((mDeviceMode & ModeTlv::kModeFFD) != 0, error = kThreadError_InvalidState);
|
||||
|
||||
offset = aMessage.GetOffset();
|
||||
end = aMessage.GetLength();
|
||||
@@ -2585,7 +2588,7 @@ ThreadError MleRouter::HandleDiscoveryRequest(const Message &aMessage, const Ip6
|
||||
else // if steering data is not set out of band, fall back to network data
|
||||
#endif // OPENTHREAD_CONFIG_ENABLE_STEERING_DATA_SET_OOB
|
||||
{
|
||||
VerifyOrExit(mNetif.GetNetworkDataLeader().IsJoiningEnabled());
|
||||
VerifyOrExit(mNetif.GetNetworkDataLeader().IsJoiningEnabled(), error = kThreadError_NotCapable);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2630,7 +2633,7 @@ ThreadError MleRouter::SendDiscoveryResponse(const Ip6::Address &aDestination, u
|
||||
MeshCoP::Tlv *steeringData;
|
||||
uint16_t delay;
|
||||
|
||||
VerifyOrExit((message = NewMleMessage()) != NULL);
|
||||
VerifyOrExit((message = NewMleMessage()) != NULL, error = kThreadError_NoBufs);
|
||||
message->SetSubType(Message::kSubTypeMleDiscoverResponse);
|
||||
message->SetPanId(aPanId);
|
||||
SuccessOrExit(error = AppendHeader(*message, Header::kCommandDiscoveryResponse));
|
||||
@@ -2672,7 +2675,7 @@ ThreadError MleRouter::SendDiscoveryResponse(const Ip6::Address &aDestination, u
|
||||
// Otherwise use the one from commissioning data.
|
||||
if (!mSteeringData.IsCleared())
|
||||
{
|
||||
SuccessOrExit(message->Append(&mSteeringData, sizeof(mSteeringData) + mSteeringData.GetLength()));
|
||||
SuccessOrExit(error = message->Append(&mSteeringData, sizeof(mSteeringData) + mSteeringData.GetLength()));
|
||||
}
|
||||
else
|
||||
#endif // OPENTHREAD_CONFIG_ENABLE_STEERING_DATA_SET_OOB
|
||||
@@ -2682,7 +2685,7 @@ ThreadError MleRouter::SendDiscoveryResponse(const Ip6::Address &aDestination, u
|
||||
|
||||
if (steeringData != NULL)
|
||||
{
|
||||
SuccessOrExit(message->Append(steeringData, sizeof(*steeringData) + steeringData->GetLength()));
|
||||
SuccessOrExit(error = message->Append(steeringData, sizeof(*steeringData) + steeringData->GetLength()));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2716,7 +2719,7 @@ ThreadError MleRouter::SendChildIdResponse(Child *aChild)
|
||||
Ip6::Address destination;
|
||||
Message *message;
|
||||
|
||||
VerifyOrExit((message = NewMleMessage()) != NULL);
|
||||
VerifyOrExit((message = NewMleMessage()) != NULL, error = kThreadError_NoBufs);
|
||||
SuccessOrExit(error = AppendHeader(*message, Header::kCommandChildIdResponse));
|
||||
SuccessOrExit(error = AppendSourceAddress(*message));
|
||||
SuccessOrExit(error = AppendLeaderData(*message));
|
||||
@@ -2794,7 +2797,7 @@ exit:
|
||||
message->Free();
|
||||
}
|
||||
|
||||
return kThreadError_None;
|
||||
return error;
|
||||
}
|
||||
|
||||
ThreadError MleRouter::SendChildUpdateRequest(Child *aChild)
|
||||
@@ -2818,7 +2821,7 @@ ThreadError MleRouter::SendChildUpdateRequest(Child *aChild)
|
||||
}
|
||||
}
|
||||
|
||||
VerifyOrExit((message = NewMleMessage()) != NULL);
|
||||
VerifyOrExit((message = NewMleMessage()) != NULL, error = kThreadError_NoBufs);
|
||||
message->SetSubType(Message::kSubTypeMleChildUpdateRequest);
|
||||
SuccessOrExit(error = AppendHeader(*message, Header::kCommandChildUpdateRequest));
|
||||
SuccessOrExit(error = AppendSourceAddress(*message));
|
||||
@@ -2856,7 +2859,7 @@ ThreadError MleRouter::SendChildUpdateResponse(Child *aChild, const Ip6::Message
|
||||
ThreadError error = kThreadError_None;
|
||||
Message *message;
|
||||
|
||||
VerifyOrExit((message = NewMleMessage()) != NULL);
|
||||
VerifyOrExit((message = NewMleMessage()) != NULL, error = kThreadError_NoBufs);
|
||||
SuccessOrExit(error = AppendHeader(*message, Header::kCommandChildUpdateResponse));
|
||||
|
||||
for (int i = 0; i < aTlvslength; i++)
|
||||
@@ -2929,7 +2932,7 @@ ThreadError MleRouter::SendDataResponse(const Ip6::Address &aDestination, const
|
||||
Neighbor *neighbor;
|
||||
bool stableOnly;
|
||||
|
||||
VerifyOrExit((message = NewMleMessage()) != NULL);
|
||||
VerifyOrExit((message = NewMleMessage()) != NULL, error = kThreadError_NoBufs);
|
||||
SuccessOrExit(error = AppendHeader(*message, Header::kCommandDataResponse));
|
||||
SuccessOrExit(error = AppendSourceAddress(*message));
|
||||
SuccessOrExit(error = AppendLeaderData(*message));
|
||||
@@ -3464,8 +3467,8 @@ ThreadError MleRouter::RestoreChildren(void)
|
||||
uint16_t length;
|
||||
|
||||
length = sizeof(childInfo);
|
||||
SuccessOrExit(otPlatSettingsGet(mNetif.GetInstance(), kKeyChildInfo, i,
|
||||
reinterpret_cast<uint8_t *>(&childInfo), &length));
|
||||
SuccessOrExit(error = otPlatSettingsGet(mNetif.GetInstance(), kKeyChildInfo, i,
|
||||
reinterpret_cast<uint8_t *>(&childInfo), &length));
|
||||
VerifyOrExit(length >= sizeof(childInfo), error = kThreadError_Parse);
|
||||
|
||||
VerifyOrExit((child = NewChild()) != NULL, error = kThreadError_NoBufs);
|
||||
@@ -3493,9 +3496,9 @@ ThreadError MleRouter::RemoveStoredChild(uint16_t aChildRloc16)
|
||||
ChildInfo childInfo;
|
||||
uint16_t length = sizeof(childInfo);
|
||||
|
||||
SuccessOrExit(otPlatSettingsGet(mNetif.GetInstance(), kKeyChildInfo, i,
|
||||
reinterpret_cast<uint8_t *>(&childInfo), &length));
|
||||
VerifyOrExit(length == sizeof(childInfo));
|
||||
SuccessOrExit(error = otPlatSettingsGet(mNetif.GetInstance(), kKeyChildInfo, i,
|
||||
reinterpret_cast<uint8_t *>(&childInfo), &length));
|
||||
VerifyOrExit(length == sizeof(childInfo), error = kThreadError_Parse);
|
||||
|
||||
if (childInfo.mRloc16 == aChildRloc16)
|
||||
{
|
||||
|
||||
@@ -237,7 +237,7 @@ ThreadError SourceMatchController::AddPendingEntries(void)
|
||||
{
|
||||
if (child->IsStateValidOrRestoring() && child->IsIndirectSourceMatchPending())
|
||||
{
|
||||
SuccessOrExit(AddAddress(*child));
|
||||
SuccessOrExit(error = AddAddress(*child));
|
||||
child->SetIndirectSourceMatchPending(false);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user