[network-data] fix FindTlv() to return NULL when TLV sequence is malformed (#4771)

This commit is contained in:
Abtin Keshavarzian
2020-04-01 10:23:11 -07:00
committed by GitHub
parent 8423ed3042
commit 3579a68b93
+2 -2
View File
@@ -66,7 +66,7 @@ NetworkDataTlv *NetworkData::FindTlv(NetworkDataTlv *aStart, NetworkDataTlv *aEn
for (tlv = aStart; tlv < aEnd; tlv = tlv->GetNext())
{
VerifyOrExit((tlv + 1) <= aEnd && tlv->GetNext() <= aEnd);
VerifyOrExit((tlv + 1) <= aEnd && tlv->GetNext() <= aEnd, tlv = NULL);
if (tlv->GetType() == aType)
{
@@ -89,7 +89,7 @@ NetworkDataTlv *NetworkData::FindTlv(NetworkDataTlv * aStart,
for (tlv = aStart; tlv < aEnd; tlv = tlv->GetNext())
{
VerifyOrExit((tlv + 1) <= aEnd && tlv->GetNext() <= aEnd);
VerifyOrExit((tlv + 1) <= aEnd && tlv->GetNext() <= aEnd, tlv = NULL);
if ((tlv->GetType() == aType) && (tlv->IsStable() == aStable))
{