From b9b9c19640df2e60692a7e9536cf9111595cee26 Mon Sep 17 00:00:00 2001 From: Jonathan Hui Date: Thu, 27 Oct 2022 11:08:56 +0200 Subject: [PATCH] [network-data] do not process TMF messages if waiting for sync (#8332) --- src/core/thread/network_data_leader_ftd.cpp | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/src/core/thread/network_data_leader_ftd.cpp b/src/core/thread/network_data_leader_ftd.cpp index 27654e3aa..e8b3afad9 100644 --- a/src/core/thread/network_data_leader_ftd.cpp +++ b/src/core/thread/network_data_leader_ftd.cpp @@ -133,12 +133,10 @@ template <> void Leader::HandleTmf(Coap::Message &aMessage, cons ThreadNetworkDataTlv networkDataTlv; uint16_t rloc16; - VerifyOrExit(Get().IsLeader()); + VerifyOrExit(Get().IsLeader() && !mWaitingForNetDataSync); LogInfo("Received network data registration"); - VerifyOrExit(!mWaitingForNetDataSync); - VerifyOrExit(aMessageInfo.GetPeerAddr().GetIid().IsRoutingLocator()); switch (Tlv::Find(aMessage, rloc16)) @@ -185,10 +183,9 @@ template <> void Leader::HandleTmf(Coap::Message &aMessage, MeshCoP::Tlv *cur; MeshCoP::Tlv *end; - VerifyOrExit(Get().IsLeader()); + VerifyOrExit(Get().IsLeader() && !mWaitingForNetDataSync); VerifyOrExit(length <= sizeof(tlvs)); - VerifyOrExit(Get().IsLeader()); aMessage.ReadBytes(offset, tlvs, length); @@ -275,7 +272,7 @@ template <> void Leader::HandleTmf(Coap::Message &aMessage, uint16_t length = 0; uint16_t offset; - VerifyOrExit(Get().IsLeader()); + VerifyOrExit(Get().IsLeader() && !mWaitingForNetDataSync); SuccessOrExit(Tlv::FindTlvValueOffset(aMessage, MeshCoP::Tlv::kGet, offset, length)); aMessage.SetOffset(offset);