diff --git a/src/core/thread/network_diagnostic.cpp b/src/core/thread/network_diagnostic.cpp index 2511047e6..14703c6df 100644 --- a/src/core/thread/network_diagnostic.cpp +++ b/src/core/thread/network_diagnostic.cpp @@ -572,7 +572,7 @@ static inline void ParseMacCounters(const MacCountersTlv &aMacCountersTlv, otNet Error Client::GetNextDiagTlv(const Coap::Message &aMessage, Iterator &aIterator, TlvInfo &aTlvInfo) { - Error error = kErrorNotFound; + Error error; uint16_t offset = (aIterator == 0) ? aMessage.GetOffset() : aIterator; while (offset < aMessage.GetLength()) @@ -774,10 +774,13 @@ Error Client::GetNextDiagTlv(const Coap::Message &aMessage, Iterator &aIterator, // Exit if a TLV is recognized and parsed successfully. aTlvInfo.mType = tlv.GetType(); aIterator = offset; + error = kErrorNone; ExitNow(); } } + error = kErrorNotFound; + exit: return error; }