ExternalRouteLookup(): Use local var in inner loop iterating over sub-tlvs (#217)

This commit modifies the `Leader::ExternalRouteLookup()` method so
a new local variable `subCur` is used when iterating over sub-tlvs
of a "PrefixTLV". This change addresses issue #216.
This commit is contained in:
Abtin Keshavarzian
2016-06-27 17:20:54 -07:00
committed by Jonathan Hui
parent db436d91ae
commit f8effdd181
+6 -5
View File
@@ -376,6 +376,7 @@ ThreadError Leader::ExternalRouteLookup(uint8_t aDomainId, const Ip6::Address &a
int8_t rval_plen = 0; int8_t rval_plen = 0;
int8_t plen; int8_t plen;
NetworkDataTlv *cur; NetworkDataTlv *cur;
NetworkDataTlv *subCur;
for (cur = reinterpret_cast<NetworkDataTlv *>(mTlvs); for (cur = reinterpret_cast<NetworkDataTlv *>(mTlvs);
cur < reinterpret_cast<NetworkDataTlv *>(mTlvs + mLength); cur < reinterpret_cast<NetworkDataTlv *>(mTlvs + mLength);
@@ -398,16 +399,16 @@ ThreadError Leader::ExternalRouteLookup(uint8_t aDomainId, const Ip6::Address &a
if (plen > rval_plen) if (plen > rval_plen)
{ {
// select border router // select border router
for (cur = reinterpret_cast<NetworkDataTlv *>(prefix->GetSubTlvs()); for (subCur = reinterpret_cast<NetworkDataTlv *>(prefix->GetSubTlvs());
cur < reinterpret_cast<NetworkDataTlv *>(prefix->GetSubTlvs() + prefix->GetSubTlvsLength()); subCur < reinterpret_cast<NetworkDataTlv *>(prefix->GetSubTlvs() + prefix->GetSubTlvsLength());
cur = cur->GetNext()) subCur = subCur->GetNext())
{ {
if (cur->GetType() != NetworkDataTlv::kTypeHasRoute) if (subCur->GetType() != NetworkDataTlv::kTypeHasRoute)
{ {
continue; continue;
} }
hasRoute = reinterpret_cast<HasRouteTlv *>(cur); hasRoute = reinterpret_cast<HasRouteTlv *>(subCur);
for (int i = 0; i < hasRoute->GetNumEntries(); i++) for (int i = 0; i < hasRoute->GetNumEntries(); i++)
{ {