From f8effdd181740a6bdbb2c1dc5a063cc5880e855a Mon Sep 17 00:00:00 2001 From: Abtin Keshavarzian Date: Mon, 27 Jun 2016 17:20:54 -0700 Subject: [PATCH] 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. --- src/core/thread/network_data_leader.cpp | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/src/core/thread/network_data_leader.cpp b/src/core/thread/network_data_leader.cpp index a67313b0d..632e8f3df 100644 --- a/src/core/thread/network_data_leader.cpp +++ b/src/core/thread/network_data_leader.cpp @@ -376,6 +376,7 @@ ThreadError Leader::ExternalRouteLookup(uint8_t aDomainId, const Ip6::Address &a int8_t rval_plen = 0; int8_t plen; NetworkDataTlv *cur; + NetworkDataTlv *subCur; for (cur = reinterpret_cast(mTlvs); cur < reinterpret_cast(mTlvs + mLength); @@ -398,16 +399,16 @@ ThreadError Leader::ExternalRouteLookup(uint8_t aDomainId, const Ip6::Address &a if (plen > rval_plen) { // select border router - for (cur = reinterpret_cast(prefix->GetSubTlvs()); - cur < reinterpret_cast(prefix->GetSubTlvs() + prefix->GetSubTlvsLength()); - cur = cur->GetNext()) + for (subCur = reinterpret_cast(prefix->GetSubTlvs()); + subCur < reinterpret_cast(prefix->GetSubTlvs() + prefix->GetSubTlvsLength()); + subCur = subCur->GetNext()) { - if (cur->GetType() != NetworkDataTlv::kTypeHasRoute) + if (subCur->GetType() != NetworkDataTlv::kTypeHasRoute) { continue; } - hasRoute = reinterpret_cast(cur); + hasRoute = reinterpret_cast(subCur); for (int i = 0; i < hasRoute->GetNumEntries(); i++) {